<SEC-DOCUMENT>0001140361-25-010065.txt : 20250324
<SEC-HEADER>0001140361-25-010065.hdr.sgml : 20250324
<ACCEPTANCE-DATETIME>20250324172744
ACCESSION NUMBER:		0001140361-25-010065
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		97
CONFORMED PERIOD OF REPORT:	20241231
FILED AS OF DATE:		20250324
DATE AS OF CHANGE:		20250324

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TRANSACT TECHNOLOGIES INC
		CENTRAL INDEX KEY:			0001017303
		STANDARD INDUSTRIAL CLASSIFICATION:	COMPUTER PERIPHERAL EQUIPMENT, NEC [3577]
		ORGANIZATION NAME:           	06 Technology
		EIN:				061456680
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-21121
		FILM NUMBER:		25765182

	BUSINESS ADDRESS:	
		STREET 1:		ONE HAMDEN CENTER
		STREET 2:		2319 WHITNEY AVENUE, SUITE 3B
		CITY:			HAMDEN
		STATE:			CT
		ZIP:			06518
		BUSINESS PHONE:		203-859-6800

	MAIL ADDRESS:	
		STREET 1:		ONE HAMDEN CENTER
		STREET 2:		2319 WHITNEY AVENUE, SUITE 3B
		CITY:			HAMDEN
		STATE:			CT
		ZIP:			06518
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>ef20039038_10k.htm
<DESCRIPTION>FORM 10-K FOR THE YEAR ENDED DECEMBER 31, 2024
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html 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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:srt="http://fasb.org/srt/2024" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:country="http://xbrl.sec.gov/country/2024" xmlns:currency="http://xbrl.sec.gov/currency/2024" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:naics="http://xbrl.sec.gov/naics/2024" xmlns:sic="http://xbrl.sec.gov/sic/2024" xmlns:stpr="http://xbrl.sec.gov/stpr/2024" xmlns:exch="http://xbrl.sec.gov/exch/2024" xmlns:cef="http://xbrl.sec.gov/cef/2024" xmlns:ecd="http://xbrl.sec.gov/ecd/2024" xmlns:cyd="http://xbrl.sec.gov/cyd/2024" xmlns:tact="http://transact-tech.com/20241231" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
    <meta http-equiv="Content-Type" content="text/html"/>
</head>

<body style="background-color: #ffffff; color: #000000;">
<div id="DSPFiXBRLHidden" style="display: none;"><ix:header><ix:hidden><ix:nonNumeric name="dei:AmendmentFlag" id="Fact_8ff688de41d241ceaa9b94cb45cecc76" contextRef="c20240101to20241231" format="ixt:fixed-false">false</ix:nonNumeric><ix:nonNumeric name="dei:CurrentFiscalYearEndDate" id="Fact_7003950223e24ea79116917bbc717688" contextRef="c20240101to20241231" format="ixt:date-month-day">12-31</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalYearFocus" id="Fact_cf9e81cc4ac941e591f5399431ce9358" contextRef="c20240101to20241231">2024</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalPeriodFocus" id="Fact_5c64da1ff0ce432eab481f1e06884de5" contextRef="c20240101to20241231">FY</ix:nonNumeric><ix:nonNumeric name="dei:EntityCentralIndexKey" id="Fact_9272e67ef4e5437d9ab752e6636df90c" contextRef="c20240101to20241231">0001017303</ix:nonNumeric><ix:nonFraction name="us-gaap:RevenueRemainingPerformanceObligation" id="Fact_e37ea88e93bd42529bfb23dbe89fa89f" contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20270101Member" unitRef="U001" xsi:nil="true"></ix:nonFraction><ix:nonNumeric name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Fact_f50c8aea3ef443c8a2609b35c6a05cf4" contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20270101Member">P12M</ix:nonNumeric><ix:nonNumeric name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Fact_070b19bc2e87417485287551ea3163d4" contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20260101Member">P12M</ix:nonNumeric><ix:nonNumeric name="dei:AuditorFirmId" id="Fact_10f4a0dd8bbe41ea9f478334d704bcf8" contextRef="c20240101to20241231">688</ix:nonNumeric><ix:nonFraction name="us-gaap:CommitmentsAndContingencies" id="Fact_b2b91892050d45bfbdfe14f96b9ad30d" contextRef="c20241231" unitRef="U001" xsi:nil="true"></ix:nonFraction><ix:nonFraction name="us-gaap:CommitmentsAndContingencies" id="Fact_c98ce75021e247d9a6a16f2ba55381cc" contextRef="c20231231" unitRef="U001" xsi:nil="true"></ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:href="tact-20241231.xsd" xlink:type="simple"/></ix:references><ix:resources><xbrli:context id="c20240101to20241231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></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="c20240630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20250314"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-03-14</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></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="c20221231_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</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="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</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="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</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="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</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="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</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="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</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="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20231231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20231231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241001to20241231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-10-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_ToolsDiesAndMoldsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ToolsDiesAndMoldsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</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="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</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="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</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="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</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="c20230101to20231231_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</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="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</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="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</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="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</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="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</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="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</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="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</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="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</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="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</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="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</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="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</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="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</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="c20240101to20241231_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</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="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</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="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</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="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</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="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</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="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</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="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</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="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20260101Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain xmlns:us-gaap="http://fasb.org/us-gaap/2024">2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain xmlns:us-gaap="http://fasb.org/us-gaap/2024">2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20270101Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain xmlns:us-gaap="http://fasb.org/us-gaap/2024">2027-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:LightWonderGamingIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</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="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:LightWonderGamingIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</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="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</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="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:LightWonderGamingIncMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:LightWonderGamingIncMember</xbrldi:explicitMember><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>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FixedAssetsExcludingConstructionInProcessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FixedAssetsExcludingConstructionInProcessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tact:TransactMember</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="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tact:TransactMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</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="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:MaterialReconcilingItemsMember</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="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:MaterialReconcilingItemsMember</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="c20230101to20231231_TitleOfIndividualAxis_ChiefExecutiveOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefExecutiveOfficerMember</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="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_FederalFundsEffectiveSwapRateMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:FederalFundsEffectiveSwapRateMember</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="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_PrimeRateMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</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="c20231231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</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="c20210721_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-07-21</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241120_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-11-20</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241119_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-11-19</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</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="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</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="c20241231_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember><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="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</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="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</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="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</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="c20240101to20241231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</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="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</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="c20230101to20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</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="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</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="c20241231_IncomeTaxAuthorityAxis_DomesticCountryMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_TaxCreditCarryforwardAxis_ResearchMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_TaxCreditCarryforwardAxis_ResearchMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</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="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</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="c20230101to20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</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="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceDeferredTaxAssetUnitedStatesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">tact:ValuationAllowanceDeferredTaxAssetUnitedStatesMember</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="c20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_EmployeeStockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</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="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_EmployeeStockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_PerformanceSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</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="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_PerformanceSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</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="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_RestrictedStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</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="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_RestrictedStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</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="c20050101to20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2005-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</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="c20230101to20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</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="c20240101to20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember><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-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</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="c20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:PacificRimMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</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="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</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="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</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="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:PacificRimMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</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="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</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="c20231001to20231231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240101to20240331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20230701to20230930"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20240401to20240630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20240701to20240930"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230401to20230630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20230101to20231231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tact:TheOneGroupHospitalityIncMember</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="c20240101to20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tact:TheOneGroupHospitalityIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</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="c20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tact:TheOneGroupHospitalityIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20231231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tact:TheOneGroupHospitalityIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="U001"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="U002"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="U003"><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="U004"><xbrli:measure>tact:Segment</xbrli:measure></xbrli:unit><xbrli:unit id="U005"><xbrli:measure>tact:Solution</xbrli:measure></xbrli:unit><xbrli:unit id="U006"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="U007"><xbrli:measure>tact:Plan</xbrli:measure></xbrli:unit><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_11c1cde366ba4c0f934c1b4137718d0b" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_581017b20eb1438cb1a6673b1a2cad30" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_8c509495d7b0448eb8d857ea64ac5982" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_1a350868eedf479e825e885b866ad436" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_e08d5b677b7041a983641c8cba1f54b8" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_8d70da87f96f48cca2f3009259a3fbf3" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_b3db755b52a54323b23037bcd2bd07f2" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_1928e9b6c64a42fba5f539b786fd81d0" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_7d0fbb8fba164e83b0ba0879dc808e46" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_7c5b53a1c8534156a0305a063082151f" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_1d2c57d04e57448380172b161b182ba6" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_37f9e617256946a08e5fb8778c091f57" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_b348fca154ba44d4b941466d559c1e04" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_64011356dfb94e76a412184b86da6b6d" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_3fb53e09c1724244888528d1d0ec8b77" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_8d32d3a74ea340de87f2908c5ec778b2" toRefs="Foot_ed18f58ee254452faf20859044f9d9f9" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_5b50415d1fad4424be3cfa35ffa9f759" toRefs="Foot_ed18f58ee254452faf20859044f9d9f9" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_405c8e86ab1b4e299f867ea0322c0700" toRefs="Foot_ed18f58ee254452faf20859044f9d9f9" linkRole="http://www.xbrl.org/2003/role/link"/><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_0461940fd93f4a23acf26fcf7baf9ef1" toRefs="Foot_b9e98cfa484b4af5927ff1faa04bae67" linkRole="http://www.xbrl.org/2003/role/link"/></ix:resources></ix:header></div>
<div style="line-height: initial;">
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <div class="BRPFPageHeader"></div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 14pt; font-weight: bold;">
      <hr style="border: none; border-bottom: 1px solid black; border-top: 4px solid black; height: 10px; color: #ffffff; background-color: #ffffff; text-align: center; margin-left: auto; margin-right: auto;"/>
<div>UNITED STATES</div>
</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 14pt; font-weight: bold;">SECURITIES AND EXCHANGE COMMISSION</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold;">Washington, D.C. 20549</div>

    <div style="text-align: justify;"><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold;"><span style="font-size: 18pt; font-family: 'Times New Roman';">FORM <ix:nonNumeric name="dei:DocumentType" id="Fact_ad50b7e2ef8340a4ad958b070437cc76" contextRef="c20240101to20241231">10-K</ix:nonNumeric></span></div>

    <div><br/>
    </div>

    <div style="text-align: left; text-indent: -18pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(Mark One)</div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="dei:DocumentAnnualReport" id="Fact_c196ef1afe044bb590c42eabdcc0af09" contextRef="c20240101to20241231" format="ixt-sec:boolballotbox">&#9746;</ix:nonNumeric></td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</div>
          </td>

  </tr>


</table>
    <div><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">For the fiscal year ended <ix:nonNumeric name="dei:DocumentPeriodEndDate" id="Fact_3cc1bb0bdaef4641a6cbde1bd62c1470" contextRef="c20240101to20241231" format="ixt:date-monthname-day-year-en">December 31, 2024</ix:nonNumeric></div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">or</div>

    <div><br/>
    </div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="dei:DocumentTransitionReport" id="Fact_820511bda7a04120b2b6511a5eb7c233" contextRef="c20240101to20241231" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</div>
          </td>

  </tr>


</table>
    <div><br/>
    </div>

    <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">For the transition period from __________ to __________</div>

    <div><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold;">Commission file number:</span>&#160;<ix:nonNumeric name="dei:EntityFileNumber" id="Fact_df74f8f952ea4441ad8a7cf5b0d95746" contextRef="c20240101to20241231">0-21121</ix:nonNumeric></div>

    <div><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 1pt;"><img height="87" width="353" src="image01.jpg" alt="graphic" style="height: 87px; width: 353px;"/></div>

    <div style="text-align: center; color: #FFFFFF; font-family: 'Times New Roman'; font-size: 1pt;"><ix:nonNumeric name="dei:EntityRegistrantName" id="Fact_4ace6eb2a1094deb9942631e9a0a072f" contextRef="c20240101to20241231">TRANSACT TECHNOLOGIES INC</ix:nonNumeric></div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(Exact name of registrant as specified in its charter)</div>

    <div><br/>
    </div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 48.4%; vertical-align: top; border-bottom: #000000 2px solid;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt; font-weight: bold;"><ix:nonNumeric name="dei:EntityIncorporationStateCountryCode" id="Fact_6c186e9ec16841838b8de7a9708448bb" contextRef="c20240101to20241231" format="ixt-sec:stateprovnameen">Delaware</ix:nonNumeric></div>
          </td>

    <td style="width: 3.89%; vertical-align: top;">&#160;</td>

    <td style="width: 47.71%; vertical-align: top; border-bottom: #000000 2px solid;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt; font-weight: bold;"><ix:nonNumeric name="dei:EntityTaxIdentificationNumber" id="Fact_6cd3130d7d8048d19748fe3a46face1c" contextRef="c20240101to20241231">06-1456680</ix:nonNumeric></div>
          </td>

  </tr>

  <tr>

    <td style="width: 48.4%; vertical-align: top;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">(State or other jurisdiction of incorporation or organization)</div>
          </td>

    <td style="width: 3.89%; vertical-align: top;">&#160;</td>

    <td style="width: 47.71%; vertical-align: top;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">(I.R.S. Employer Identification No.)</div>
          </td>

  </tr>

  <tr>

    <td style="width: 48.4%; vertical-align: top;">&#160;</td>

    <td style="width: 3.89%; vertical-align: top;">&#160;</td>

    <td style="width: 47.71%; vertical-align: bottom;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 48.4%; vertical-align: top; border-bottom: #000000 2px solid;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt; font-weight: bold;"><ix:nonNumeric name="dei:EntityAddressAddressLine1" id="Fact_0651ea05f328482b9b0c8fa7c42cba10" contextRef="c20240101to20241231">One Hamden Center</ix:nonNumeric>,
              <ix:nonNumeric name="dei:EntityAddressAddressLine2" id="Fact_8294c91bb5f245dab4559bb314acdfed" contextRef="c20240101to20241231">2319 Whitney Avenue, Suite 3B</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressCityOrTown" id="Fact_686df33220f448afbd92a4764a54ce43" contextRef="c20240101to20241231">Hamden</ix:nonNumeric>,
              <ix:nonNumeric name="dei:EntityAddressStateOrProvince" id="Fact_88b3711caee34c02869699692ad8238f" contextRef="c20240101to20241231">CT</ix:nonNumeric></div>
          </td>

    <td style="width: 3.89%; vertical-align: top;">&#160;</td>

    <td style="width: 47.71%; vertical-align: bottom; border-bottom: #000000 2px solid;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt; font-weight: bold;"><ix:nonNumeric name="dei:EntityAddressPostalZipCode" id="Fact_8a0a94d169b342309fd8cbc3f1cacf23" contextRef="c20240101to20241231">06518</ix:nonNumeric></div>
          </td>

  </tr>

  <tr>

    <td style="width: 48.4%; vertical-align: top;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">(Address of principal executive offices)</div>
          </td>

    <td style="width: 3.89%; vertical-align: top;">&#160;</td>

    <td style="width: 47.71%; vertical-align: top;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">(Zip Code)</div>
          </td>

  </tr>


</table>
    <div><br/>
    </div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 100%; vertical-align: top; border-bottom: #000000 2px solid;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">(<ix:nonNumeric name="dei:CityAreaCode" id="Fact_ad6dba071d914d569072932702da6016" contextRef="c20240101to20241231">203</ix:nonNumeric>) <ix:nonNumeric name="dei:LocalPhoneNumber" id="Fact_f7d53f19266641379c58eaad95130c2f" contextRef="c20240101to20241231">859-6800</ix:nonNumeric></div>
          </td>

  </tr>

  <tr>

    <td style="width: 100%; vertical-align: top;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(Registrant&#8217;s Telephone Number, Including Area Code)</div>
          </td>

  </tr>


</table>
    <div><br/>
    </div>

    <div style="text-align: center; color: #231F20; font-family: 'Times New Roman'; font-size: 10pt;">Securities registered pursuant to Section 12(b) of the Act:</div>

    <div><br/>
    </div>

    <div><br/>
    </div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 35.97%; vertical-align: middle; border-bottom: #000000 2px solid;">
            <div style="text-align: center; color: #231F20; font-family: 'Times New Roman'; font-size: 10pt;">Title of each class</div>
          </td>

    <td style="width: 2.64%; vertical-align: middle;">&#160;</td>

    <td style="width: 22.22%; vertical-align: middle; border-bottom: #000000 2px solid;">
            <div style="text-align: center; color: #231F20; font-family: 'Times New Roman'; font-size: 10pt;">Trading Symbol(s)</div>
          </td>

    <td style="width: 1.81%; vertical-align: middle;">&#160;</td>

    <td style="width: 37.36%; vertical-align: middle; border-bottom: #000000 2px solid;">
            <div style="text-align: center; color: #231F20; font-family: 'Times New Roman'; font-size: 10pt;">Name of each exchange on which registered</div>
          </td>

  </tr>

  <tr>

    <td style="width: 35.97%; vertical-align: middle;">
            <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="dei:Security12bTitle" id="Fact_c9cfb748665d45a4be9cdf101eb82934" contextRef="c20240101to20241231">Common stock, par value $0.01 per share</ix:nonNumeric></div>
          </td>

    <td style="width: 2.64%; vertical-align: middle;">&#160;</td>

    <td style="width: 22.22%; vertical-align: middle;">
            <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="dei:TradingSymbol" id="Fact_a9f3d0f875334e4d8829735307dd1e1a" contextRef="c20240101to20241231">TACT</ix:nonNumeric></div>
          </td>

    <td style="width: 1.81%; vertical-align: middle;">&#160;</td>

    <td style="width: 37.36%; vertical-align: middle;">
            <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="dei:SecurityExchangeName" id="Fact_222aa33516e942b1b85ef0ea0d105a94" contextRef="c20240101to20241231">NASDAQ</ix:nonNumeric> Global Market</div>
          </td>

  </tr>


</table>
    <div><br/>
    </div>

    <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt;">Securities registered pursuant to Section 12(g) of the Act: None</div>

    <div><br/>
    </div>

    <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.&#160; Yes&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9744;</span>&#160;&#160; <ix:nonNumeric name="dei:EntityWellKnownSeasonedIssuer" id="Fact_2032c3d762e04197a7b32afcb8f2f137" contextRef="c20240101to20241231">No</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9746;</span></div>

    <div><br/>
    </div>

    <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.&#160; Yes&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9744;</span>&#160;&#160; <ix:nonNumeric name="dei:EntityVoluntaryFilers" id="Fact_51c01c6ceb1541329705cdfb0221528d" contextRef="c20240101to20241231">No</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9746;</span></div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">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.&#160; <ix:nonNumeric name="dei:EntityCurrentReportingStatus" id="Fact_232c8f4c5a28488d844f0ae88b9d110c" contextRef="c20240101to20241231">Yes</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9746;</span>&#160;&#160; No&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9744;</span></div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">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 during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).&#160; <ix:nonNumeric name="dei:EntityInteractiveDataCurrent" id="Fact_f7a8fcee95ad436c9d820a9f176929fe" contextRef="c20240101to20241231">Yes</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9746;</span>&#160;&#160; No&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9744;</span></div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or
      an emerging growth company.&#160; 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.</div>

    <div><br/>
    </div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 57.5%; vertical-align: top;">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Large accelerated filer&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9744;</span></div>
          </td>

    <td style="width: 42.5%; vertical-align: top;">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Accelerated filer&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9744;</span></div>
          </td>

  </tr>

  <tr>

    <td style="width: 57.5%; vertical-align: top;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;"><ix:nonNumeric name="dei:EntityFilerCategory" id="Fact_8fb9951b466949ffa4e7537008e50454" contextRef="c20240101to20241231" format="ixt-sec:entityfilercategoryen">Non-accelerated filer</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9746;</span></div>
          </td>

    <td style="width: 42.5%; vertical-align: top;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Smaller reporting company&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';"><ix:nonNumeric name="dei:EntitySmallBusiness" id="Fact_9aca122d68174cc6bf944250e13c0e07" contextRef="c20240101to20241231" format="ixt-sec:boolballotbox">&#9746;</ix:nonNumeric></span></div>
          </td>

  </tr>

  <tr>

    <td style="width: 57.5%; vertical-align: top;">&#160;</td>

    <td style="width: 42.5%; vertical-align: top;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Emerging growth company <span style="font-size: 8pt; font-family: 'Times New Roman';"><ix:nonNumeric name="dei:EntityEmergingGrowthCompany" id="Fact_20b156268cda47cd8e747c77ea3e256b" contextRef="c20240101to20241231" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></span></div>
          </td>

  </tr>


</table>
    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">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.&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9744;</span></div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;"><span style="font-size: 8pt; font-family: 'Times New Roman';">Indicate by check mark whether the registrant has filed a report on and attestation to its
        management&#8217;s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report. <ix:nonNumeric name="dei:IcfrAuditorAttestationFlag" id="Fact_fb71296d75164244958417756965440c" contextRef="c20240101to20241231" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></span></div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;"><span style="font-size: 8pt; font-family: 'Times New Roman';">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark
        whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. <ix:nonNumeric name="dei:DocumentFinStmtErrorCorrectionFlag" id="Fact_bf8a6947029b432392153892841fb143" contextRef="c20240101to20241231" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></span></div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received
      by any of the registrant&#8217;s executive officers during the relevant recovery period pursuant to &#167;240.10D-1(b). <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9744;</span></div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Act). Yes&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';"><ix:nonNumeric name="dei:EntityShellCompany" id="Fact_92f99f4a7b764f6898d58c2f199e5665" contextRef="c20240101to20241231" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric></span>&#160;&#160; No&#160; <span style="font-size: 8pt; font-family: 'Times New Roman';">&#9746;</span></div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">The aggregate market value of the voting and non-voting common equity held by non-affiliates of the registrant was approximately $<ix:nonFraction name="dei:EntityPublicFloat" id="Fact_a4797fc92cc14db3b6d7c29be0d6d7db" contextRef="c20240630" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">33,000,000</ix:nonFraction> based on the last sale price on June 30, 2024.</div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">As of March 14, 2025, the number of
      shares outstanding of the registrant&#8217;s common stock, par value $0.01 per share, was <ix:nonFraction name="dei:EntityCommonStockSharesOutstanding" id="Fact_05577fe83d8f4d73ad0639034dc50841" contextRef="c20250314" unitRef="U002" decimals="INF" scale="0" format="ixt:num-dot-decimal">10,080,717</ix:nonFraction>.</div>

    <div><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 8pt; font-weight: bold;">DOCUMENTS INCORPORATED BY REFERENCE</div>

    <div><br/>
    </div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;">Portions of the registrant&#8217;s Definitive Proxy Statement related to its 2025 Annual Meeting of Stockholders (the &#8220;Proxy Statement&#8221;) to be filed with the Securities and Exchange Commission&#160; within 120 days after the Registrant&#8217;s fiscal year end of December 31, 2024 are incorporated by reference into Part III of this Annual Report on Form 10-K.</div>

    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 8pt;"> <br/>
    </div>

    <div>
      <hr style="border: none; border-bottom: 4px solid black; border-top: 1px solid black; height: 10px; color: #ffffff; background-color: #ffffff; text-align: center; margin-left: auto; margin-right: auto;"/> </div>

    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageFooter"></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

      <div class="BRPFPageHeader" style="width: 100%;"></div>

    </div>

    <div class="BRPFPageFooter" style="width: 100%;"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0);">

    <div>
      <div>
        <div style="text-align: center; color: #000000; font-weight: bold;"><span style="text-decoration: underline;">TRANSACT TECHNOLOGIES INCORPORATED</span></div>

        <div><br/>
        </div>

        <div style="text-align: center; color: #000000; font-weight: bold;"><a id="INDEX"><!--Anchor--></a><span style="text-decoration: underline;">INDEX</span></div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 8%; vertical-align: top;">&#160;</td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: center; color: #000000;">PART I.</div>
              </td>

    <td style="width: 7%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 1.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item1.">Business</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">2</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 1A.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item1A.">Risk Factors</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">6</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 1B.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item1B.">Unresolved Staff Comments</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">20</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 1C.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item1C.">Cybersecurity</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">21</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 2.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item2.">Properties</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">22</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 3.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item3.">Legal Proceedings</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">22</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 4.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item4.">Mine Safety Disclosures</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">22</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">&#160;</td>

    <td style="width: 85%; vertical-align: top;">&#160;</td>

    <td style="width: 7%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; color: #000000;">PART II.</div>
              </td>

    <td style="width: 7%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 5.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item5.">Market for Registrant&#8217;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">23</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 6.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item6.">[Reserved]</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">23</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 7.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item7.">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">23</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 7A.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item7A.">Quantitative and Qualitative Disclosures About Market Risk</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">32</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 8.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item8.">Financial Statements and Supplementary Data</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">32</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 9.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item9.">Changes in and Disagreements with Accountants on Accounting and Financial Disclosure</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">32</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 9A.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item9A.">Controls and Procedures</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">32</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 9B.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item9B.">Other Information</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">32</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 9C.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item9C.">Disclosure Regarding Foreign Jurisdictions that Prevent Inspections</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">32</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 7%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">&#160;</td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: center; color: #000000;">PART III.</div>
              </td>

    <td style="width: 7%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 10.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item10.">Directors, Executive Officers and Corporate Governance</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">33</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 11.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item11.">Executive Compensation</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">33</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 12.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item12.">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">33</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 13.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item13.">Certain Relationships and Related Transactions, and Director Independence</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">33</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Item 14.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#Item14.">Principal Accountant Fees and Services</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">33</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">&#160;</td>

    <td style="width: 85%; vertical-align: top;">&#160;</td>

    <td style="width: 7%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; color: #000000;">PART IV.</div>
              </td>

    <td style="width: 7%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Item 15.</div>
              </td>

    <td style="width: 85%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;"><a href="#Item15.">Exhibits and Financial Statement Schedules</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom;">
                <div style="text-align: center; margin-right: 0.8pt; color: #000000;">34</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="color: #000000;">Item 16.</div>
              </td>

    <td style="width: 85%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="color: #000000;"><a href="#Item16.">Form 10-K Summary</a></div>
              </td>

    <td style="width: 7%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; color: #000000;">36</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8%; vertical-align: top;">&#160;</td>

    <td style="width: 85%; vertical-align: top;">&#160;</td>

    <td style="width: 7%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td colspan="2" style="vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#SIGNATURES">SIGNATURES</a></div>
              </td>

    <td style="width: 7%; vertical-align: top; background-color: rgb(204, 238, 255); text-align: center;">37<br/>
              </td>

  </tr>

  <tr>

    <td colspan="2" style="vertical-align: top;">&#160;</td>

    <td style="width: 7%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td colspan="2" style="vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">CONSOLIDATED FINANCIAL STATEMENTS</div>
              </td>

    <td style="width: 7%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

  </tr>

  <tr>

    <td colspan="2" style="vertical-align: top;">&#160;</td>

    <td style="width: 7%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td colspan="2" style="vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;"><a href="#INDEXTOCONSOLIDATEDFINANC">Index to Consolidated Financial Statements</a></div>
              </td>

    <td style="width: 7%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: center; color: #000000;">F-1</div>
              </td>

  </tr>


</table>
        <div><span style="font-size: 8pt; font-weight: normal; font-style: italic;"> <br/>
          </span></div>

        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;"><br/>
            </span></a> </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <!--PROfilePageNumberReset%Num%1%%%-->
        <div style="text-align: center; font-weight: bold;">Smaller Reporting Company&#8212;Scaled Disclosure</div>

        <div style="text-align: justify;">Pursuant to Item 10(f) of Regulation S-K promulgated under the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;), as indicated herein, we have elected to comply with certain scaled disclosure requirements
          applicable to &#8220;smaller reporting companies&#8221; in this Annual Report on Form 10-K for the year ended December 31, 2024 (this &#8220;Form 10-K&#8221;).</div>

        <div><br/>
        </div>

        <div style="text-align: center; font-weight: bold;">PART I</div>

        <div><br/>
        </div>

        <div style="font-weight: bold;">Forward-Looking Statements</div>

        <div style="text-align: justify; font-style: italic;">Certain statements included in this Form 10-K include &#8220;forward-looking statements&#8221; within the meaning of the U.S. federal securities laws, including the Private Securities Litigation Reform Act
          of 1995. Forward-looking statements are any statements other than statements of historical fact. Forward-looking statements represent current views about possible future events and are often identified by the use of forward-looking terminology,
          such as &#8220;may,&#8221; &#8220;will,&#8221; &#8220;could,&#8221; &#8220;expect,&#8221; &#8220;intend,&#8221; &#8220;estimate,&#8221; &#8220;anticipate,&#8221; &#8220;believe,&#8221; &#8220;project,&#8221; &#8220;plan,&#8221; &#8220;predict,&#8221; &#8220;design&#8221; or &#8220;continue&#8221; or the negative thereof or other similar words.&#160; Forward-looking statements are subject to certain
          risks, uncertainties and assumptions.&#160; In the event that one or more of such risks or uncertainties materialize, or one or more underlying assumptions prove incorrect, actual results may differ materially from those expressed or implied by the
          forward-looking statements.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-style: italic;">Important factors and uncertainties that could cause actual results to differ materially from those expressed or implied by the forward-looking statements include, but are not limited to, the
          following:</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">the adverse effects of current economic conditions on our business, operations, financial condition, results of operations and capital resources;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">difficulties or delays in manufacturing or delivery of inventory or other supply chain disruptions;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">inflation;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">the Russia/Ukraine and Middle East conflicts;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">inadequate manufacturing capacity or a shortfall or excess of inventory as a result of difficulty in predicting manufacturing requirements due to volatile economic conditions;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">price increases, decreased availability of third-party component parts or raw materials at reasonable prices, price wars or other significant pricing pressures affecting the Company&#8217;s products in the United
                  States or abroad;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">increased product costs or reduced customer demand for our products in the United States or abroad, including as a result of trade wars or tariffs;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">our ability to successfully develop new products that garner customer acceptance and generate sales, both domestically and internationally, in the face of substantial competition;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">our reliance on an unrelated third party to develop, maintain and host certain web-based food service application software and develop and maintain selected components of our downloadable software
                  applications pursuant to a non-exclusive license agreement, and the risk that interruptions in our relationship with that third party could materially impair our ability to provide services to our food service technology customers on a
                  timely basis or at all and could require substantial expenditures to find or develop alternative software products;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">any system outages, interruptions or other disruptions to our software applications, including as a result of unexpected errors or mistakes in connection with over-the-air updates;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">our ability to successfully grow our business in the food service technology market;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">renewal rates for our subscription-based products;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">risks associated with the pursuit of strategic initiatives and business growth;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">our dependence on contract manufacturers for the assembly of a large portion of our products in Asia;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">our dependence on significant suppliers;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">our ability to recruit and retain quality employees;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">our dependence on third parties for sales outside the United States;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">marketplace acceptance of new products;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">risks associated with foreign operations;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">political and policy uncertainties in connection with the U.S. presidential election and change in administration;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">our ability to protect intellectual property;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">exchange rate fluctuations;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">the availability of needed financing on acceptable terms or at all;</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">volatility of, and decreases in, trading prices of our common stock; and</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="font-style: italic;">other risk factors identified and discussed in Part I, Item 1A, Risk Factors, and Part II, Item 7, Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations, of this Form 10-K and
                  that may be detailed from time to time in the Company&#8217;s other reports filed with the Securities and Exchange Commission (the &#8220;SEC&#8221;).</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify; font-style: italic;">We caution readers not to place undue reliance on forward-looking statements, which speak only as of the date of this Form 10-K.&#160; We undertake no obligation to publicly or otherwise revise any
          forward-looking statements, whether as a result of new information, future events or other factors, except where we are expressly required to do so by applicable law.</div>

        <div><br/>
        </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">1</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <a id="Item1."><!--Anchor--></a>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 45pt; vertical-align: top; font-weight: bold;">Item 1.</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Business.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="font-weight: bold;">The Company</div>

        <div style="text-align: justify;">TransAct Technologies Incorporated (together with its consolidated subsidiaries, &#8220;TransAct,&#8221; the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;our&#8221;) was incorporated in June 1996 and began operating as a stand-alone business in
          August 1996 as a spin-off of the printer business that was formerly conducted by certain subsidiaries of Tridex Corporation.&#160; We completed an initial public offering on August 22, 1996.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">TransAct is a global leader in developing and selling software-driven technology and printing solutions for high-growth markets including food service technology, point of sale (&#8220;POS&#8221;) automation and casino and
          gaming.&#160; Our world-class products are designed from the ground up based on market and customer requirements and are sold under the BOHA!&#8482;, AccuDate&#8482;, Epic, EPICENTRAL&#174;, and Ithaca&#174; brand names.&#160; During 2019, we launched a new line of products for
          the food service technology market, the BOHA! hardware solutions and companion branded suite of cloud-based applications.&#160; The BOHA! software and hardware products help restaurants, convenience stores and food service operators of all sizes
          automate the food production in the back-of-house operations.&#160; Known and respected worldwide for innovative designs and real-world service reliability, our thermal printers and terminals generate top-quality labels, coupons and transaction
          records such as receipts, tickets and other documents.&#160; We sell our technology to original equipment manufacturers (&#8220;OEMs&#8221;), value-added resellers, and select distributors, as well as directly to end users.&#160; Our product distribution spans across
          the Americas, Europe, the Middle East, Africa, Asia, Australia, New Zealand, the Caribbean Islands and the South Pacific. We also offer world-class service, support, labels, spare parts, accessories and printing supplies to our growing worldwide
          base of products currently in use by our customers. Through our TransAct Services Group (&#8220;TSG&#8221;), we provide a complete range of supplies and consumables used in the printing activities of customers in the restaurant and hospitality, retail,
          casino and gaming, and government markets.&#160; Through our webstore, www.transactsupplies.com, and our direct selling team, we address the demand for these products.&#160; We operate in one reportable segment: the design, development, and marketing of
          software-driven technology and printing solutions for high growth markets, and related services, supplies and spare parts.&#160; The Company&#8217;s chief operating decision maker, who is the Company&#8217;s chief executive officer, in consultation with the
          Company&#8217;s chief financial officer, utilizes a consolidated approach to assess the performance of and allocate resources to the business. Accordingly, management has concluded that the Company consists of a single operating segment and single
          reportable segment for accounting and financial reporting purposes.&#160; Our primary operating, hardware research and development, and U.S. service center is located in Ithaca, New York.&#160; In addition, we have a casino and gaming sales headquarters
          and software research and development center in Las Vegas, Nevada; a European sales and service center at our subsidiary in the United Kingdom (&#8220;UK&#8221;); and a sales office located in Macau, China.&#160; Our executive offices are located at One Hamden
          Center, 2319 Whitney Avenue, Suite 3B, Hamden, Connecticut, 06518, and our telephone number is (203) 859-6800.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-weight: bold;">Recent Developments</div>

        <div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt;">The Company&#8217;s previously announced strategic review process remains active. Management and the Company&#8217;s Board of Directors are focused on the process. The Company is
          determined to consider any and all options that increase and/or deliver stockholder value. The Company will provide further updates on this process when it determines that additional disclosure is appropriate or required. This process is subject
          to unknown variables, including costs, structure, terms and timing, and may not result in any transaction or other particular outcome. For information regarding the risks related to the strategic review process, please see Part I, Item 1A, Risk
          Factors under the sub-caption &#8220;Our success may depend in part on our ability to identify and pursue the best long-term strategy for our businesses&#8221; in this Form 10-K.</div>

        <div><br/>
        </div>

        <div style="font-weight: bold;">Products, Services, Markets and Distribution Methods</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Printers, terminals and other hardware:</span> TransAct designs, develops and markets a broad array of transaction-based and specialty printers and terminals
          utilizing thermal printing technology for applications, primarily in the food service technology, POS automation, and casino and gaming markets.&#160; Our printers and terminals are configurable and offer customers the ability to choose from a variety
          of features and functions.&#160; Options typically include interface configuration, mounting configuration, paper cutting devices and paper handling capacities.&#160; Our food service technology terminals also offer software configurable menu options and
          our food service technology market includes sales of optional hardware products including tablets, temperature sensors and gateways (i.e. access points needed to enable wireless communications).</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Food Service Technology (&#8220;FST&#8221;): </span> Our primary offering in the food service technology market is our line of BOHA! products.&#160; The BOHA! product suite
          combines our latest generation terminal or workstation which includes one or two printers, with our BOHA! labeling, timers, and media software.&#160; In addition, customers may individually purchase cloud-based software applications that connect to a
          separate application on a separate mobile device into a solution to automate back-of-house operations in restaurants, convenience stores and food service operations. The additional software offering of BOHA! consists of a variety of individually
          purchased software-as-a-service (&#8220;SaaS&#8221;) based applications for both Android and iOS operating systems, including applications for, temperature monitoring, temperature taking and creating checklists and task lists. These applications are sold
          separately, and customers purchase the applications they need for their back-of-house operations. Customers may also purchase associated hardware, such as tablets, temperature sensors and gateways. The BOHA! Terminal and the more recently
          launched Terminal 2 combine<span style="color: #FF0000;">&#160;</span>an operating system and hardware components in a single touchscreen device with one or two thermal print mechanisms that print easy-to-read food rotation labels, grab-and-go labels,
          and nutritional labels for prepared foods, and &#8220;enjoy by&#8221; date labels. The BOHA! WorkStation uses an iPad or Android tablet instead of an integrated touchscreen. The BOHA! Terminal, Terminal 2 and WorkStation are equipped with the TransAct
          Enterprise Management System to ensure that only approved functions are available on the touchscreen device and to allow over-the-air updates to the operating system. BOHA! helps food service establishments and restaurants (including fine dining,
          casual dining, fast casual and quick-service restaurants, convenience stores, hospitality establishments and contract food service providers) effectively manage food safety and grab-and-go initiatives, as well as automate and manage back-of-house
          operations. Recurring revenue from BOHA! is generated by software sales, including software subscriptions that are typically charged to customers annually on a per-application basis, as well as sales of labels, extended warranty and service
          contracts, and technical support services.&#160; In the food service technology market, we use an internal sales force to solicit sales directly from end users.&#160; In May 2023, we launched our new BOHA! Terminal 2.&#160; The Terminal 2 is designed to be a
          high-end product intended for enterprise customers with increased speed, print resolution and wide-label capability.&#160; We started receiving orders for the Terminal 2 in the latter part of 2023 from both our international and domestic markets.</div>

        <div><br/>
        </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">2</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">POS automation:</span><span style="font-weight: bold;">&#160;</span>In the POS market, we sell a printer utilizing thermal printing technology.&#160; Our POS printer is
          used primarily by McDonald&#8217;s, and to a lesser extent, other quick-service restaurants and are located either at the checkout counter or within self-service kiosks, to print receipts for consumers or print on linerless labels.&#160; In the POS market,
          we primarily sell our products through a network of domestic and international distributors and resellers.&#160; We use an internal sales force to manage sales through our distributors and resellers, as well as to solicit sales directly from
          end-users.</div>

        <div style="text-align: justify;"> <br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Casino and gaming:</span>&#160; We sell several models of printers used in slot machines, video lottery terminals (&#8220;VLTs&#8221;), sports betting kiosks and other gaming
          machines that print tickets or receipts instead of issuing coins (&#8220;ticket-in, ticket-out&#8221; or &#8220;TITO&#8221;) at casinos, racetracks and other gaming venues worldwide.&#160; These printers utilize thermal printing technology to print tickets and receipts in
          monochrome and offer various other features such as jam resistant bezels and a dual port interface that enables casinos to print coupons and promotions.&#160; In addition, we sell printers using thermal roll-fed printing technology for use in
          international non-casino establishments, including game types such as Amusements with Prizes, Skills with Prizes, Fixed Odds Betting Terminals, sports betting establishments and other off-premise gaming type machines around the world.&#160; We sell
          our casino and gaming products primarily (1) to slot machine manufacturers, who incorporate our printers into slot machines and, in turn, sell completed slot machines directly to casinos and other gaming establishments and (2) through
          distributors.&#160; We also maintain a dedicated internal sales force to solicit sales from slot machine manufacturers and casinos, and to manage sales through our distributors.&#160; In the fourth quarter of 2023, we launched the Epic TR80, our newest
          casino and gaming printer, which we believe will help us retain and expand our customer base in the casino and gaming markets.</div>

        <div> <br/>
        </div>

        <div style="text-align: justify;">We also offer a software solution, the EPICENTRAL Print System, including annual software maintenance, that enables casino operators to create promotional coupons and marketing messages and to print them in real
          time at the slot machine. With EPICENTRAL, casinos can utilize the system to create multiple promotions and incentives to either increase customer time spent on the casino floor or encourage additional visits to generate more revenue to the
          casinos.&#160; We sell EPICENTRAL directly to casinos or through partners who incorporate EPICENTRAL into their casino management system software offerings, largely sold on a SaaS basis.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">TSG</span><span style="font-weight: bold;">:&#160; </span>Through TSG, we proactively market the sale of consumable products (including POS receipt paper, ribbons
          and other printing supplies), replacement parts, maintenance and repair services, and shipping and handling charges.&#160; Our maintenance services include the sale of extended warranties, multi-year maintenance contracts, a 24-hour guaranteed
          replacement product service called TransAct Xpress&#8482; and other repair services for our non-FST products.&#160; Within the United States, we provide repair services through our service center in Ithaca, New York.&#160; Internationally, we provide repair
          services through our European service center located in Doncaster, UK, and through partners strategically located around the world.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We also provide customers with telephone sales and technical support, and a personal account representative to handle orders, shipping and general information.&#160; Technical and sales support personnel receive
          training on all our products and services.&#160; In addition to personalized telephone and technical support, we also market and sell consumable products 24 hours a day, seven days a week, via our webstore, www.transactsupplies.com.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Sources and Availability of Raw Materials</div>

        <div style="text-align: justify;">We design our products to optimize product performance, quality, reliability and durability.&#160; These designs combine cost efficient materials, sourcing and assembly methods with high standards of workmanship.&#160;
          Almost all of our printers and terminals are currently produced by a third party manufacturer located in Thailand.&#160; A small portion of our products are assembled in our Ithaca, New York facility largely on a configure-to-order basis using
          components and subassemblies that have been sourced from vendors and contract manufacturers around the world.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Critical component parts and subassemblies include thermal print heads, printing/cutting mechanisms, power supplies, motors, injection molded plastic parts, LCD screens, tablets, circuit boards and electronic
          components, which are obtained from domestic and foreign suppliers at competitive prices, subject to availability.&#160; As a result of the majority of our production being performed by our contract manufacturers, the majority of our purchases consist
          of fully assembled printers and terminals produced by our contract manufacturers and, to a much lesser extent, component parts.&#160; We typically strive to maintain more than one source for our component parts, subassemblies and fully assembled
          printers and terminals to reduce the risk of parts shortages or unavailability.&#160; However, we have experienced and could continue to experience some disruption due to certain suppliers being unable to source specific components and we could
          experience temporary disruption in the availability of components.&#160; In addition, we could experience temporary disruption if certain suppliers ceased doing business with us, as described below.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We currently buy a majority of our thermal print mechanisms, an important component of our thermal printers, and fully assembled printers for substantially all of our printer and food service technology terminal
          models, from a foreign contract manufacturer in Thailand.&#160; We believe that other contract manufacturers could provide similar thermal print mechanisms or fully assembled printers and terminals, on comparable terms.&#160; We do not have supply
          agreements with foreign contract manufacturers, and we believe that our supply of thermal print mechanisms and fully assembled printers and terminals will be adequate in 2025 and the foreseeable future.</div>

        <div><br/>
        </div>

        <div style="font-weight: bold;">Patents and Proprietary Information</div>

        <div style="text-align: justify;">TransAct relies on a combination of trade secrets, patents, employee and third party nondisclosure agreements, copyright laws and contractual rights to establish and protect its proprietary rights in its products.
          As of December 31, 2024, we held 23 active United States patents<span style="color: #1F3864;">&#160;</span>and 39 active foreign patents and have three pending United States patent applications and eight pending foreign patent applications pertaining
          to our products.&#160; The remaining duration of these patents ranges from one to 25 years. During the year ended December 31, 2024, no United States patents were issued and 12 foreign patents were issued.&#160;&#160; During the year ended December 31, 2024, no
          United States or foreign patents expired.&#160; The expiration of any individual patent would not have a significant negative impact on our business.&#160; We regard certain manufacturing processes and designs to be proprietary and attempt to protect them
          through employee and third party nondisclosure agreements and similar means.&#160; It may be possible for unauthorized third parties to copy certain portions of our products or to reverse engineer or otherwise obtain and use, to our detriment,
          information that we regard as proprietary.&#160; Moreover, the laws of some foreign countries do not afford the same protection to our proprietary rights as do the laws of the United States. There can be no assurance that legal protections we rely
          upon to protect our proprietary position will be adequate or that our competitors will not independently develop technologies that are substantially equivalent or superior to our technologies.</div>

        <div><br/>
        </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">3</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-weight: bold;">Trademarks, Service Marks Trade Names and Copyrights</div>

        <div style="text-align: justify;">We own or have rights to trademarks, service marks, trade names and copyrights that we use in connection with the operation of our business, including our corporate names, logos and website names. Other trademarks,
          service marks and trade names appearing in this Form 10-K are the property of their respective owners.&#160; The trademarks we own include TransAct&#174;, BOHA! &#174;, AccuDate&#174;, EPICENTRAL&#174;, Epic TR80&#8482;, Ithaca&#174; and TransAct Express&#8482;. Solely for convenience,
          some of the trademarks, service marks, trade names and copyrights referred to in this Form 10-K are listed without the &#169;, &#174; and &#8482; symbols, but we will assert, to the fullest extent under applicable law, our rights to our trademarks, service
          marks, trade names and copyrights.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Seasonality</div>

        <div style="text-align: justify;">Restaurants typically reduce purchases of equipment in the fourth quarter due to the increased volume of transactions during the holiday period, which may negatively impact sales of our food service technology
          products or POS printers.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Working Capital</div>

        <div style="text-align: justify;">Inventory, accounts receivable, and accounts payable levels, payment terms, and where applicable, return policies are in accordance with the general practices of the industry and standard business procedures.&#160; See
          also Part II, Item 7. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations of this Form 10-K.</div>

        <div><br/>
        </div>

        <div style="font-weight: bold;">Certain Significant Customers</div>

        <div style="text-align: justify;">Light &amp; Wonder Gaming, Inc. (Light &amp; Wonder&#8221;) is our most significant customer. We primarily sell casino and gaming printers to Light &amp; Wonder.</div>

        <div style="text-align: justify;">Sales to Light &amp; Wonder represented 11% and 6% of our total net sales for the years ended December 31, 2024 and 2023, respectively.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Competition</div>

        <div style="text-align: justify;">The market for transaction-based and specialty printers, food service technology terminals and related software applications is extremely competitive, and we expect such competition to continue in the future.&#160;
          However, we experience less competition for EPICENTRAL software due to the highly customized nature of the product.&#160; We compete with a number of companies, many of which have greater financial, technical and marketing resources than TransAct.&#160; We
          believe our ability to compete successfully depends on a number of factors both within and outside our control, including durability, reliability, quality, design capability, product customization, price, customer support, success in developing
          new products, manufacturing expertise and capacity, supply of component parts and materials, strategic relationships with suppliers, the timing of new product introductions by us and our competitors, general market, economic and political
          conditions and, in some cases, the uniqueness of our products.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">In the food service technology market, we primarily compete with CrunchTime! Information Systems, Inc. (including its Zenput and Squadle brands), Jolt Software, Avery Dennison Corporation, Ecolab Inc., ITD Food
          Safety, Daymark Safety Systems (part of CMC Group, Inc.), Integrated Control Corp, Digi International, and Toast.&#160; We compete in this market based largely on our ability to provide highly specialized purpose-built hardware products, different
          software applications that can be chosen by a customer and ongoing technical support.&#160; We rely upon third party developed software and hosting services combined with our own proprietary hardware and software to offer a unique BOHA! branded
          solution to support back-of-house operations in the food service industry. Our competitors or others may develop, or may establish relationships with developers with the capability to develop, software and services that are similar to or
          competitive with ours, which may be disadvantageous to our competitive position.&#160; Certain portions of our food service technology software are licensed from a third party developer on a non-exclusive basis through 2031 and are subject to a
          revenue sharing arrangement with the developer. We are reliant upon the third party developer to further develop and maintain its developed software, and the developer controls the software source code. The license agreement does not preclude the
          developer or the Company from working with others on similar products. Also, the third party developer hosts the web-based applications.&#160; Therefore, presently, we are highly dependent upon this third party developer for continued service to our
          customers and the further development of our food service technology software products.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">In the POS automation market, we primarily compete with Epson America, Inc., which holds a dominant market position.&#160; We also compete with BIXOLON America, Inc., and, to a much extent with Star Micronics America,
          Inc. and Citizen - CBM America Corporation.&#160; We believe certain competitors of ours have greater financial resources and lower costs attributable to higher volume production and lower gross profit margin expectations which enable them to offer
          lower prices than us.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">In the casino and gaming market (consisting principally of slot machine printing, VLT and sports betting transaction and promotional coupon printing), we compete with several companies including JCM Global,
          Nanoptix, Inc., Custom Engineering SPA, Eurocoin Components and others.&#160; Certain of our products sold for casino and gaming applications compete based upon our ability to provide highly specialized products, custom engineering and ongoing
          technical support.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">The market in which TSG competes is highly fragmented, and we compete with numerous competitors of various sizes, including POS and internet resellers and paper converters depending on the geographic area.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Our strategy for competing in our markets is to continually develop and/or license new products (hardware and software), such as launching the BOHA! Terminal in 2019, the BOHA! Terminal 2 in 2023, the Epic TR80
          which was launched in 2023 and product line extensions that are technologically advanced and provide differentiated features and functions, to increase our market penetration, to take advantage of strategic relationships, and to lower the cost of
          our products by sourcing certain products overseas.&#160; Although we believe that our products, operations and relationships provide a competitive foundation, there can be no assurance that we will compete successfully in the future.&#160; In addition,
          our printer products utilize certain thermal printing technologies and licensed software.&#160; If new technologies are introduced, or existing technologies evolve, we may be required to incorporate these technologies into our products.&#160;
          Alternatively, if such technologies were to become available to our competitors, our printer products could become obsolete, which could have a significant negative impact on our business.</div>

        <div><br/>
        </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">4</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-weight: bold;">Governmental Regulation</div>

        <div style="text-align: justify;">The casino and gaming industries are generally subject to extensive and evolving regulation that in many jurisdictions includes licensing or regulatory screening of suppliers, manufacturers and distributors and
          their applicable affiliates, their major shareholders, officers, directors and key employees. In addition, certain of our casino and gaming products and technologies must be certified or approved in each of the jurisdictions in which we operate.
          Regulators review many facets of an applicant or holder of a license, including its financial stability, integrity and business experience. Any failure to receive a license or the loss of a license that we currently hold could have a material
          adverse effect on us or on our results of operations, cash flow or financial condition.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">While we believe that we are in compliance with all material casino and gaming laws and regulatory requirements applicable to us, we cannot assure that our activities or the activities of our customers will not
          become the subject of any regulatory or law enforcement proceeding or that any such proceeding would not have a material adverse impact on us or our results of operations, cash flows or financial condition.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Environmental Compliance</div>

        <div style="text-align: justify;">Our compliance with federal, state and local laws and regulations relating to environmental protection and discharge of hazardous materials has not had a material impact on our capital expenditures, earnings or
          competitive position, and we do not anticipate any material impact from such compliance in the future.</div>

        <div><br/>
        </div>

        <div style="font-weight: bold;">Available Information</div>

        <div style="text-align: justify;">We make available free of charge through the &#8220;Investor Relations&#8221; page on our website, <span style="text-decoration: underline;">www.transact-tech.com</span> (which can be accessed by selecting the &#8220;Company&#8221; tab and then clicking on &#8220;Investor Relations&#8221;),
          our Annual Report on Form 10-K, Quarterly Reports on Form 10-Q, Current Reports on Form 8-K, proxy statements and all amendments to those reports and statements as soon as reasonably practicable after such material is electronically filed with or
          furnished to the SEC pursuant to Sections 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;).&#160; The SEC maintains a website that contains reports, proxy and information statements, and other information
          regarding issuers that file electronically with the SEC at http://www.sec.gov.&#160; The content on any website referred to in this Form 10-K is not incorporated by reference in this Form 10-K unless expressly noted.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Employees</div>

        <div style="text-align: justify;">As of December 31, 2024, TransAct and our subsidiaries employed 108 persons, all of whom were full-time employees.&#160; None of our employees are unionized, and we consider our relationships with our employees to be
          good.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Information about our Executive Officers</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">The following is a list of the names and ages of all executive officers of the registrant, indicating all positions and offices with the registrant held by each such person and each person&#8217;s principal occupations
          and employment during at least the past five years.</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 28%; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
                <div style="text-align: justify; font-weight: bold;">Name</div>
              </td>

    <td style="width: 1.01%; vertical-align: bottom;">&#160;</td>

    <td style="width: 7.35%; vertical-align: bottom; border-bottom: #000000 2px solid;">
                <div style="text-align: center; font-weight: bold;">Age</div>
              </td>

    <td style="width: 1%; vertical-align: bottom;">&#160;</td>

    <td style="width: 63.42%; vertical-align: bottom; border-bottom: #000000 2px solid;">
                <div style="font-weight: bold;">Position</div>
              </td>

  </tr>

  <tr>

    <td style="width: 28%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div>John M. Dillon</div>
                </div>
              </td>

    <td style="width: 1.01%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 7.35%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div style="text-align: center;">75</div>
                </div>
              </td>

    <td style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 63.42%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div style="text-align: justify;">Chief Executive Officer</div>
                </div>
              </td>

  </tr>

  <tr>

    <td style="width: 28%; vertical-align: bottom;">
                <div>
                  <div>Steven A. DeMartino</div>
                </div>
              </td>

    <td style="width: 1.01%; vertical-align: bottom;">&#160;</td>

    <td style="width: 7.35%; vertical-align: bottom;">
                <div>
                  <div style="text-align: center;">55</div>
                </div>
              </td>

    <td style="width: 1%; vertical-align: bottom;">&#160;</td>

    <td style="width: 63.42%; vertical-align: bottom;">
                <div>
                  <div style="text-align: justify;">President, Chief Financial Officer, Treasurer and Secretary</div>
                </div>
              </td>

  </tr>

  <tr>

    <td style="width: 28%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div>Tracey S. Winslow</div>
                </div>
              </td>

    <td style="width: 1.01%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 7.35%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div style="text-align: center;">65</div>
                </div>
              </td>

    <td style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 63.42%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div style="text-align: justify;">Chief Revenue Officer</div>
                </div>
              </td>

  </tr>

  <tr>

    <td style="width: 28%; vertical-align: bottom;">
                <div>
                  <div>Brent Richtsmeier</div>
                </div>
              </td>

    <td style="width: 1.01%; vertical-align: bottom;">&#160;</td>

    <td style="width: 7.35%; vertical-align: bottom;">
                <div>
                  <div style="text-align: center;">60</div>
                </div>
              </td>

    <td style="width: 1%; vertical-align: bottom;">&#160;</td>

    <td style="width: 63.42%; vertical-align: bottom;">
                <div>
                  <div style="text-align: justify;">Chief Technology Officer</div>
                </div>
              </td>

  </tr>

  <tr>

    <td style="width: 28%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div>William J. DeFrances</div>
                </div>
              </td>

    <td style="width: 1.01%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 7.35%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div style="text-align: center;">60</div>
                </div>
              </td>

    <td style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 63.42%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>
                  <div style="text-align: justify;">Vice President &amp; Chief Accounting Officer</div>
                </div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">John M. Dillon was appointed Chief Executive Officer of TransAct on April 4, 2023 and has been a member of the Board of Directors of the Company since 2011.&#160; Mr. Dillon served as the Chairman of the Board of
          Directors of Aerospike, the world&#8217;s first flash-optimized database and the fastest database at scale, from January 2022 to February 2024 and served as CEO of Aerospike from January 2015 to January 2022. Prior to joining Aerospike, Mr. Dillon
          served as CEO of Engine Yard, Inc., the leading cloud platform for automating and developing Ruby on Rails and PHP applications, from 2009 to 2014. He served as CEO for Navis, Inc., a private company specializing in software systems for operating
          large marine container terminals and distribution centers, from 2002 to 2008. Before Navis, he also served as CEO for Salesforce, Inc. (formerly Salesforce.com) and President and CEO of Hyperion Solutions. He began his career as a Systems
          Engineer for EDS (Electronic Data Systems) and then moved into a variety of sales management positions for various high-tech companies, including Oracle Corporation. Mr. Dillon holds a Bachelor&#8217;s degree in Engineering from the United States Naval
          Academy and an MBA from Golden Gate University.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Steven A. DeMartino was named TransAct&#8217;s President, Chief Financial Officer, Treasurer and Secretary on June 1, 2010.&#160; Previously, Mr. DeMartino served as Executive Vice President, Chief Financial Officer,
          Treasurer and Secretary from June 2004 to May 2010, Senior Vice President, Finance and Information Technology from October 2001 to May 2004, Vice President and Corporate Controller from January 1998 to October 2001, and Corporate Controller from
          August 1996 to December 1997.&#160; Mr. DeMartino holds a Bachelor&#8217;s degree in Accounting and Economics from the College of the Holy Cross and an MBA from the University of Connecticut.&#160; He also is a certified public accountant.</div>

        <div><br/>
        </div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">5</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;">Tracey S. Winslow was named Chief Revenue Officer of the Company in March 2023 with responsibility for worldwide sales in all of the Company&#8217;s markets.&#160; Prior to this appointment, Ms. Winslow served as Senior Vice
          President, Casino and Gaming Sales from June 2010 to February 2023, with responsibility for the sales and marketing of all casino and gaming products.&#160; Previously, Ms. Winslow served as Senior Vice President, Sales and Marketing of the Company
          from June 2007 to May 2010, Senior Vice President, Marketing and Sales, POS and Banking of the Company from July 2006 to June 2007, and joined TransAct in May of 2005 as Senior Vice President, Marketing.&#160; Prior to joining TransAct, Ms. Winslow
          was employed with Xerox Corporation where she held the role of Manager, Worldwide Marketing from 2003 to 2005, and Manager, Sales Operations from 2000 to 2002.&#160; She joined Xerox Corporation in 1983.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Brent Richtsmeier was named Chief Technology Officer in September 2021.&#160; Previously, Mr. Richtsmeier served as Senior Vice President, Software Engineering since joining TransAct in December 2019 and was appointed
          as an officer of the Company in January 2021.&#160; Prior to joining TransAct, Mr. Richtsmeier was employed with Samsung Electronics Co., Ltd., an electronics corporation, from May 2004 until November 2017 as the VP of Development where he was
          responsible for software strategy, software development at scale and business development.&#160; In November 2017, Samsung Electronics sold their business products division to HP Inc, and Mr. Richtsmeier transferred to HP Inc to become the Global Head
          of Cloud and Mobile Software Solutions until joining TransAct in 2019.</div>

        <div><br/>
        </div>

        <div>
          <div style="text-align: justify;">William J. DeFrances joined TransAct as Vice President &amp; Chief Accounting Officer in July 2022. Mr. DeFrances previously served as Corporate Controller at Omega Engineering, Inc., an electronics and
            instrumentation company that was, during Mr. DeFrances&#8217; tenure, a subsidiary of Spectris plc, a UK public company listed on the London Stock Exchange, from September 2020 to July 2022. From August 2019 to August 2020, Mr. DeFrances worked as an
            independent financial consultant. Prior to this, Mr. DeFrances held various positions with United Technologies Corporation (now RTX Corporation, formerly Raytheon Technologies Corporation) (&#8220;UTC&#8221;) and Sikorsky Aircraft (owned by Lockheed Martin
            Corporation). Mr. DeFrances previously served as an Associate Director of Military Finance for Pratt &amp; Whitney, a subsidiary of UTC, from October 2018 to August 2019, and the Business Unit Controller, USG/Military and International Military
            for Sikorsky Aircraft from October 2015 to October 2018. Prior to this, Mr. DeFrances also served as the Assistant Controller, Financial Reporting for Sikorsky Aircraft from 2009 to 2013. In addition, Mr. DeFrances held various accounting and
            financial roles (VP Treasurer and VP Controller) from 2005 to 2009 at ATMI, Inc. (acquired by Entegris, Inc.), an advanced manufacturing company in the semiconductor industry.&#160; Mr. DeFrances has an MBA from the University of Connecticut and is
            a certified public accountant.</div>

        </div>

        <div><br/>
        </div>

        <div style="text-align: justify;">There are no family relationships between any of our executive officers and there is no arrangement or understanding between any of such officers and any other person pursuant to which he or she was selected as an
          officer.&#160; Each of our executive officers was elected by the Board of Directors to hold office until his or her successor is elected and qualified or until his or her earlier resignation or removal.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item1A."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt; white-space: nowrap;">
                  <div style="text-align: justify; font-weight: bold;">Item 1A.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; font-weight: bold;">Risk Factors.</div>
                </td>

  </tr>


</table>
        </div>

        <div>&#160;</div>

        <div style="text-align: justify;">Investors should carefully consider the risks, uncertainties and other factors described below, as well as other disclosures in Part II, Item 7. Management&#8217;s Discussion and Analysis of Financial Condition and
          Results of Operations, because they could have a material adverse effect on our business, financial condition, operating results, and growth prospects.&#160; The risks described below are the currently known risks facing our Company that management
          deems to be material to the Company.&#160; Additional risks and uncertainties not presently known to us, or that we currently believe to be immaterial, may also impair our business operations. In the event that such risks or uncertainties materialize,
          our business, financial condition, cash flows and results of operations could be materially adversely affected.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We assume no obligation (and specifically disclaim any such obligation) to update these Risk Factors or any other forward-looking statements contained in this Form 10-K to reflect actual results, changes in
          assumptions or other factors affecting such forward-looking statements, except as required by law.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to our Financial Condition and Future Operating Results</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We have a history of net losses, we anticipate making further investments in product development and we may not be able to achieve, maintain or increase profitability in
          future periods.</div>

        <div>&#160;</div>

        <div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt;">In 2024, we incurred a net loss of $9.9 million.&#160; While we generated $4.7 million of net income in 2023, we incurred a net loss of $5.9 million, $4.0 million and $5.6
          million in 2022, 2021 and 2020, respectively.&#160; We may not be able to achieve or maintain profitability in the future.&#160; In addition, we may make further investments in product development and may increase expenses in future periods which may
          affect our ability to maintain or increase profitability.&#160; We have expended, and expect to continue to expend, financial and other resources on developing our food service technology business, including expanding our offerings, developing or
          acquiring new products and services and increasing our sales and marketing efforts. These efforts may be more costly than we expect and may not result in increased revenue or growth in our food service technology business. Any failure to increase
          our revenue sufficiently to keep pace with our investments and other expenses could prevent us from maintaining or increasing profitability or positive cash flow on a consistent basis.&#160; This risk may be exacerbated by current economic conditions,
          which have resulted, and may continue to result in increased costs and decreased demand for our products.&#160; Customers that placed advance orders due to supply chain disruptions in 2022 and into 2023 paused orders in 2024 while they sold
          accumulated inventory. We believe all domestic customers have resumed ordering with the exception of one significant international casino and gaming customer. Though we expect overall casino and gaming sales to improve in 2025 compared to 2024,&#160;
          we expect such sales to be somewhat impacted in 2025 until this customer has sold through its inventory on hand. If we are unable to successfully address these risks and challenges as we encounter them, our business, financial condition, and
          results of operations could be adversely affected.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">6</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-style: italic; font-weight: bold;">Our operating results and financial condition may fluctuate.</div>

        <div>&#160;</div>

        <div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt;">Our operating results and financial condition may fluctuate from quarter to quarter and year to year and are likely to continue to vary due to a number of factors, many of
          which are not within our control.&#160; If our operating results do not meet the expectations of securities analysts or investors, who may derive their expectations by extrapolating data from recent historical operating results, the market price of
          our common stock will likely decline.&#160; Fluctuations in our operating results and financial condition may occur due to a number of factors, including, but not limited to, those identified below and throughout this &#8220;Risk Factors&#8221; section:</div>

        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>delays between our expenditures to develop and market new or enhanced products and consumables and the generation of sales from those products;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>the geographic distribution of our sales and our supply chain;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>market acceptance of our products, both domestically and internationally;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>development of new competitive products by others;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>increased levels of competition, including due to the return to market of our largest casino and gaming competitor;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>our responses to price competition;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>our level of research and development activities;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>changes in the amount that we spend to develop, acquire or license new products, consumables, technologies or businesses;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>changes in the amount we spend to promote our products and services;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>changes in the cost of satisfying our warranty obligations and servicing our installed base of products;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>availability of third party components at reasonable prices or at all;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>general economic and industry conditions, including inflation and changes in interest rates affecting returns on cash balances,&#160; investments and debt, that affect customer demand;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>changes in customer demand due to supply chain constraints;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>the dependence of our supply chain on a few, foreign third party manufacturers and suppliers and the impact on our supply chain of product or component shortages and cost increases due to events beyond our control, including tariffs
                  and other trade policies, inflation and political or social instability such as the ongoing Russia/Ukraine war , the war in the Middle East, and the conflict between China and Taiwan and possible expansion of such conflicts;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>severe weather events, public health crises, military actions, the cost of insurance and other external events out of our control that can disrupt our operations or the operations of our customers&#8217; or suppliers&#8217; facilities; and</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18.1pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>changes in accounting rules and regulations.</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <div style="text-align: justify;">Due to all of the foregoing factors, and the other risks discussed in this Form 10-K, quarter-to-quarter comparisons of our operating results may not be an indicator of future performance.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Associated with Determining and Pursuing Strategic Initiatives and Business Growth</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our success may depend in part on our ability to identify and pursue the best long-term strategy for our business.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">The Company engaged an advisor, Roth Capital Partners, LLC (&#8220;Roth&#8221;), in the fourth quarter of 2023 to assist in determining the best long-term strategy for its business and ensure the Company is maximizing the
          value of its operations for all shareholders and stakeholders. The Company continues to actively assess strategic alternatives with the assistance of Roth while continuing to pursue its business growth and development initiatives on a parallel
          track. The Company has engaged with a number of outside parties and is in various stages of discussion with such outside parties. The Company is committed to pursuing an optimal outcome for all its stakeholders and maximizing shareholder value.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">7</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;">No timetable has been established for our review of the best long-term strategy for our business, and we do not intend to disclose developments or provide updates on the progress or status of our ongoing review
          until our Board of Directors deems such disclosure is appropriate or required. During the course of this review, perceived uncertainties related to our future may result in the loss of potential business opportunities and volatility in our stock
          price and may make it more difficult for us to attract and retain qualified personnel and business partners.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Acquisitions, dispositions and other strategic alternatives involve a number of risks, including: (i) the potential disruption of our ongoing business; (ii) the distraction of management away from the ongoing
          oversight of our existing business activities; (iii) if we determined to pursue a disposition strategy, we may not be able to identify, pursue and close a transaction that provides adequate value to the Company and its stockholders; (iv) the
          potential departure of key personnel during the negotiation or pendency of a transaction; (v) the loss or reduction of control over certain of our assets; (vi) the anticipated benefits and cost savings of those transactions not being realized
          fully, or at all, or taking longer to realize than anticipated; (vii) an increase in the scope and complexity of our operations or the management of our business subsequent to a transaction; (viii) incurring additional indebtedness or the
          potential sale of additional shares of our common stock in public or private offerings to finance acquisitions or transactions, which may be dilutive to existing stockholders or cause the price of our common stock to decline; and (ix) the
          depletion of cash to pay for an acquisition.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">There can be no assurance that we will be able to successfully implement a growth strategy, or that we can successfully manage expanded operations, if they occur.&#160; If we expand, we may from time-to-time experience
          constraints that will adversely affect our ability to satisfy customer demand in a timely fashion.&#160; Failure to manage growth effectively could adversely affect our results of operations and financial condition.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Further, there can be no assurance that we will find suitable opportunities for strategic transactions at acceptable prices or on acceptable terms,&#160; successfully negotiate required agreements, obtain sufficient
          financing on acceptable terms or at all if necessary, successfully close transactions after signing such agreements, or that any resulting transaction will have a positive effect on stockholder value. A strategic transaction may result in a
          significant change in the nature of our business, operations and strategy, and we may encounter unforeseen obstacles or costs in implementing a strategic transaction.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">&#160;Risks Related to Our Operations</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our food service technology business depends substantially on our customers renewing their subscriptions with the Company. Any decline in our customer renewals could harm our
          food service technology business, results of operations and financial condition.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our subscription offerings are term-based, and in order for us to maintain or improve our results of operations, it is important that our customers renew their subscriptions with us when the existing subscription
          term expires and renew on the same terms or terms more favorable to the Company. Our customers have no obligation to renew their applications and subscriptions, and they may not renew one or more of their applications as they are purchased
          separately and individually.&#160; We also may not be able to accurately predict customer renewal rates. Customers may elect not to renew their subscriptions with us for a variety of reasons, including as a result of changes in their strategic
          priorities, budgets and costs and, in some instances, due to competing solutions. Our retention rate may also decline or fluctuate as a result of a number of other factors, including our customers&#8217; satisfaction or dissatisfaction with our
          solutions, the increase in the contract value of subscription and support contracts from new customers, the effectiveness of our customer support services, our pricing, the prices of competing products or services, global economic conditions and
          the other risk factors described herein. As a result, there can be no assurance that our food service technology customers will renew any or all of their individually purchased application subscriptions.&#160; If our customers do not renew their
          subscriptions or renew on less favorable terms, our business, results of operations and financial condition may be adversely affected.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Because we rely in part on revenue from subscription contracts and recognize revenue from subscription contracts over the term of the relevant subscription period, downturns
          or upturns in sales are not immediately reflected in full in our results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Subscription services revenue accounts for a growing portion of our food service technology revenue. Sales of new or renewal subscription contracts may decline or fluctuate as a result of a number of factors,
          including customers&#8217; level of satisfaction with our solutions, the prices of our subscriptions, the prices and features of products or subscriptions offered by our competitors, reductions in our customers&#8217; spending levels, or other changes in
          consumer behavior. If our sales of new or renewal subscription contracts decline, our revenue and revenue growth may decline. We recognize subscription revenue ratably over the term of the relevant subscription period, which is generally 12
          months in duration. As a result, much of the subscription revenue we report each quarter is derived from subscription contracts that we sold in prior quarters.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Consequently, a decline in new or renewed subscription contracts in any one quarter will not be fully reflected in revenue in that quarter but will negatively affect our revenue in future quarters. Accordingly, the
          effect of significant downturns in new or renewal sales of our subscriptions is not reflected in full in our results of operations in a given period. Also, it is difficult for us to rapidly increase our subscription revenue through additional
          sales in any period, as revenue from new and renewal subscription contracts must be recognized ratably over the applicable subscription period. Furthermore, any increases in the average term of subscription contracts would result in revenue for
          those subscription contracts being recognized over longer periods of time.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">8</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our calculation of recurring revenue and average revenue per unit (&#8220;ARPU&#8221;) may differ from how other SaaS-based companies calculate such metrics; our definitions include sales
          of our consumable labels, which generally fluctuate from period to period.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We use recurring revenue and ARPU as performance indicators in connection with our food service technology market, and we include consumable label sales, in addition to subscription software, extended warranty and
          service contracts, in our calculation of these metrics. Consumable labels are not sold on a subscription basis or subject to any minimum purchase requirements. In addition, our label sales typically fluctuate and are dependent upon the current
          demand from food service and restaurant customers, which may be affected by factors such as general economic downturns and seasonality. As a result, our use and definitions of recurring revenue and ARPU may not be comparable with, and may be
          subject to, increased fluctuation relative to those of other SaaS-based companies that do not include non-subscription components such as label sales in their definitions of recurring revenue or ARPU.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Overestimates or underestimates in our manufacturing forecasts could cause us to hold insufficient or excess inventory or result in delays in the manufacturing and delivery of
          our products, which could interfere with our ability to retain orders or provide services to our customers.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">If we fail to predict our manufacturing requirements accurately, we could incur additional costs or experience manufacturing delays. We currently use a rolling 12-month forecast based primarily on our anticipated
          product orders and our product order history to help determine our requirements for purchasing components, raw materials and finished products. It is important that we accurately predict both the demand for our products and the lead-time required
          to obtain the necessary components,&#160; raw materials and finished products.&#160; We have also modified our products in the past to substitute available components in the place of those that have become scarce or difficult to obtain, and in some
          instances have identified alternate sources for certain components.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Lead times for materials and components that we order vary significantly and depend on factors such as the specific supplier, the size of the order, contract terms, and demand for each component at a given time, as
          well as supply shortages with respect to raw materials needed to produce the components. If we underestimate our requirements, or if we are unable to obtain components on time due to supply shortages, as occurred during the COVID-19 pandemic and
          resulting global supply chain disruptions, we may have inadequate manufacturing capacity or inventory, which could interrupt manufacturing of our products and interfere with our ability to timely deliver products to our customers and adversely
          impact our sales. Alternatively, if we overestimate our requirements, we could have excess inventory of parts and finished products. Some of the actions we have taken to meet customer demand in the face of recent supply chain disruptions have
          raised our costs and decreased margins on our products, and any such actions that we take in the future could have a similar effect.&#160; Any future underestimate or overestimate of supply requirements, and any actions we may take in the future to
          navigate supply chain disruptions, could have a material adverse effect on our business and results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We depend on key personnel, the loss of whom could have a material adverse impact on our business.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our future success may depend in significant part upon the continued service of certain key management and other personnel.&#160; There can be no assurance that we will be able to recruit and retain such personnel.&#160; The
          loss of either John M. Dillon, the Company&#8217;s Chief Executive Officer, or Steven A. DeMartino, the Company&#8217;s President, Chief Financial Officer, Treasurer and Secretary, or the loss of certain groups of key employees, such as our or sales,
          operations and engineering teams, could have a material adverse effect on our business and results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our ability to recruit, retain, and develop qualified personnel is critical to our success and growth.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">To successfully compete and grow our business, we must recruit, develop and retain highly qualified managerial, technical and sales and marketing personnel. In addition, we must develop, maintain and, as necessary,
          implement appropriate succession plans to ensure we have the necessary human resources capable of maintaining continuity in our business.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">The market for qualified personnel is competitive, and we may not succeed in recruiting additional personnel or may fail to effectively replace current personnel who depart with qualified or effective successors.
          Our effort to retain and develop personnel may also result in significant additional expenses, which could adversely affect our profitability.&#160; We are also substantially dependent on our sales force to obtain new customers and increase sales to
          existing customers. There is significant competition for sales personnel with the skills and technical knowledge that we require. Our ability to achieve significant revenue growth will depend, in large part, on our success in recruiting,
          training, and retaining a sufficient number of sales personnel to support our growth. If we are unable to hire, train, and retain a sufficient number of qualified and successful sales personnel, our business, financial condition, and results of
          operations may be harmed.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">If we fail to offer high quality support, our business and reputation could suffer.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our customers rely on us and our third-party service providers for support of our software and services included in our food service technology subscription packages. High-quality support is important for the
          renewal and expansion of our agreements with existing customers. The importance of high-quality support will increase as we expand our business and pursue new customers. If we or our third party service providers do not help our customers quickly
          resolve issues and provide effective ongoing support, our ability to sell new food service technology products to existing and new customers could suffer and our reputation and relationships with existing or potential customers could be harmed.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">9</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We experience elements of seasonal fluctuations in the food service technology and POS markets which could cause our stock price to fluctuate.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our food service technology business is highly dependent on the behavior patterns of our customers and their guests. Restaurants typically reduce purchases of equipment in the fourth calendar quarter due to the
          increased volume of transactions during the holiday period, which may negatively impact sales of our food service technology products or POS printers during that period. As a result, seasonality may cause fluctuations in our financial results,
          and other trends that develop may similarly impact our results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to Product Development</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our revenue and profitability depend on our ability to continue to develop or license, on a timely basis, new products and technologies which are free from hardware or
          software anomalies and cannot be fraudulently manipulated, and customer acceptance of such products.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our success depends upon our, and our development partners&#8217;, ability to timely adapt our capabilities and processes to meet the demands of producing new and innovative products.&#160; Because our newer products contain
          software and generally are more technologically sophisticated than those we have produced in the past, we must continually refine our capabilities to meet the needs of our product innovation. In addition, the food service technology industry
          continues to experience technological developments and innovations (such as the use of artificial intelligence and machine learning), and if we are unable to provide enhancements, new features and integrations for our existing platform (due to a
          lack of investment or otherwise), or if we are unable to efficiently adapt our infrastructure to meet the needs of our product innovations in a timely manner, our business could be negatively impacted.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In addition, even if we, or developers on our behalf, successfully develop such products, there is no assurance that our innovations will be accepted by our customers.&#160; Developing and marketing new products, such
          as our line of BOHA! products, is costly, and our business could be materially adversely affected if we are unable to generate sufficient sales of such products or if our existing or new customers do not quickly accept such products.&#160; Customer
          acceptance is crucial because new products typically have little competition and market penetration due to their novelty.&#160; Customer acceptance of new products is never assured and may take time to materialize, even with respect to products
          developed with customer input. In addition, we may not be able to obtain necessary registrations, licenses, permits or regulatory approvals for new products in the casino and gaming market on a timely basis or at all, which may adversely affect
          our ability to develop such products. Further, technological innovation often results in unintended consequences such as bugs, vulnerabilities, and other system failures. Any such bug, vulnerability, or failure, especially in connection with a
          significant technical implementation or change, could result in lost business, harm to our brand or reputation, consumer complaints, and other adverse consequences, any of which could materially adversely affect our business, results of
          operations, and financial condition.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to Intellectual Property and Data Security</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Cybersecurity and privacy breaches, cyber-attacks, or other disruptions could expose us to liability, affect our business, and damage our reputation.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We are increasingly dependent on information technology systems and infrastructure for our business. We collect, store, and transmit sensitive information including intellectual property, proprietary business
          information and personal information of employees and, to a lesser extent, customers in connection with business operations. Further, our BOHA! Applications are hosted within cloud platforms that are managed by third parties.&#160; The secure
          maintenance of the information stored on our systems and such third-party systems is critical to our operations and business strategy. Any system outages, and any interruptions or other disruptions to our software applications, including as a
          result of unexpected errors or mistakes in connection with over-the-air updates, could materially adversely affect our business, results of operations, and financial condition.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In addition, some of the information that we and third-party service providers collect, store and transmit could be an attractive target of criminal attack by third parties with a wide range of motives and
          expertise, including organized criminal groups, disgruntled current or former employees, and others. Cyber-attacks are of ever-increasing levels of sophistication, and despite our extensive security measures, our information technology and
          infrastructure may be vulnerable to such attacks or may be breached, including due to employee error or malfeasance.&#160; We have experienced such breaches in the past, but they have not had a material effect on our business, financial condition or
          results of operations. Any such breach that occurs in the future could compromise our networks or the networks of third-party service providers, and the information stored there could be accessed, publicly disclosed, lost or stolen, and our
          business operations may be interrupted. If our systems become compromised, we may not promptly discover the intrusion. In addition, the techniques used to obtain unauthorized access to networks, or to sabotage IT systems, change and evolve
          frequently, including through the use of artificial intelligence and quantum computing and generally are not recognized until launched against a target.&#160; We may be unable to anticipate these techniques or to implement adequate preventative
          measures.<span style="color: #0000FF;">&#160; </span>Like other companies in our industry, we have experienced attacks to our data and systems, including malware and computer viruses that we have been able to detect and eliminate and incidents
          resulting in immaterial disruptions to our business that were remediated.&#160; .&#160; If our systems fail or are breached or disrupted by future attacks, we could lose product sales, and suffer reputational damage and loss of customer confidence. Such
          incidents could require notification to affected individuals and may result in legal claims or proceedings and liability under federal and state laws that protect the privacy and security of personal information. If third parties use a
          cyber-attack to gain access to our proprietary information, they may sell it or use it to duplicate our products, which could put us at a competitive disadvantage. Any one of these events could cause our business to be materially harmed and our
          results of operations to be adversely impacted, and there can be no assurance that the insurance that we maintain to address certain aspects of cybersecurity risks will be sufficient to cover all losses or all types of claims that may arise.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">10</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;">These risks may be exacerbated by global political unrest.&#160; For example, the Russia&#8211;Ukraine war and other international hostilities, and related sanctions imposed by the U.S. government may expose government
          entities and public and private U.S. companies to attempted or actual cyber-security attacks launched for geopolitical reasons or in conjunction with, or to finance, military conflicts and defense activities.&#160; These attacks could materially
          disrupt our supply chain or our systems and operations or those of our customers and suppliers and may lead to loss of data and income, reputational harm and diversion of funds.&#160; See Part I, Item 1C. Cybersecurity, of this Form 10-K for
          information regarding our cybersecurity risk management practices.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">The inability to protect our intellectual property rights could harm our reputation, damage our business or interfere with our competitive position.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our intellectual property is valuable and provides us with certain competitive advantages.&#160; Copyrights, patents, trademarks, service marks, trade secrets, technology licensing agreements, nondisclosure agreements
          and contracts are used to protect these proprietary rights. Despite these precautions, it may be possible for third parties to copy aspects of our products or, without authorization, to obtain and use information that we regard as trade secrets.&#160;
          Our pending patents may be denied, and our patents may be circumvented by our competitors. In addition, the laws of some foreign countries do not protect our proprietary rights as fully as do the laws of the United States. There can be no
          assurance that our means of protecting our proprietary rights in the United States or abroad will be adequate or that competing companies will not independently develop similar technologies. Our failure to adequately protect our proprietary
          rights could have a material adverse effect on our competitive position and our business.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Prosecuting or defending against intellectual property litigation could be time consuming and costly, and claims that we have infringed upon the intellectual property rights
          of others could impede our business and put us at a competitive disadvantage.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Prosecuting and defending against intellectual property litigation is generally complex, costly, protracted, and highly disruptive to business operations by diverting the attention and energies of management and
          key technical personnel.&#160; We are committed to aggressively asserting and defending our technology and related intellectual property rights, which we have spent a significant amount of money to develop.&#160; Similarly, third parties have claimed and
          may claim, from time to time in the future, that we have violated their intellectual property rights. In the event that a court rules that we have violated a third party&#8217;s patent or other intellectual property rights, we may be prevented from
          operating our business as planned and may be required to pay damages, to obtain a license, if available, or to use a non-infringing method, if possible, to accomplish our objectives. Litigation relating to any such claims could be costly and, if
          successful, could result in costly judgments or settlements, and there can be no assurance that a license or a substitute technology will be available on favorable terms, or at all. Any such outcome could have a material adverse effect on our
          business, financial condition and results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">We may face difficulty keeping up with market developments in artificial intelligence and machine learning, and any such developments may be subject to rapidly evolving and extensive regulation</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our industry is marked by rapid technological developments and innovations (such as the use of artificial intelligence and machine learning) and evolving industry standards. If we are unable to provide enhancements
          and new features and integrations for our existing platform, develop new products that achieve market acceptance, or innovate quickly enough to keep pace with these rapid technological developments, our business could be harmed.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In addition, laws and regulations regarding artificial intelligence and machine learning are evolving rapidly.&#160; The technologies underlying artificial intelligence and machine learning, and the use of such
          technologies, are subject to a variety of laws and regulations, including intellectual property, data privacy and cybersecurity, consumer protection and competition laws, and are expected to be subject to increased regulation and new laws or new
          applications of existing laws and regulations, which may vary by jurisdiction. Further, because these technologies are highly complex and rapidly developing, it is not possible to predict all of the legal, operational or technological risks that
          may arise relating to the use of artificial intelligence and machine learning.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to Our Partners and Suppliers</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We rely on an unrelated third party to develop, maintain and host certain portions of our food service technology software, and any disruption in the relationship with that
          third party, or any defects in the software provided by that third party, could have a material adverse effect on our reputation, business, financial condition and results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We rely upon third party developed software and hosting services combined with our own proprietary hardware and software to offer our unique BOHA! branded solution to support back-of-house operations in the food
          service industry.&#160; Certain web-based food service application software and selected components of our downloadable software applications are licensed from a third-party developer on a non-exclusive basis through 2031 and are subject to a revenue
          sharing arrangement with the developer. We are reliant upon the third-party developer to further develop and maintain its developed software, and the developer controls the software source code.&#160; Therefore, presently, we are highly dependent on
          this third-party developer for continued service to our customers and the further development of our food service technology software products.&#160; If the software provider were to terminate operations or otherwise be unavailable to provide
          maintenance, hosting and development services to us and our customers, the availability or usage of our software products could be disrupted and our customers could be adversely affected.&#160; In any such case, we may need to seek comparable software
          and services from other third parties or develop it internally, which could require significant time and expense. There can be no assurance that such software or services would be available from other sources, or that if available, they would be
          of comparable quality and cost.&#160; Moreover, any efforts to develop new software, whether internal or by third parties, would require significant lead time, and there could be an interruption in service during any period in which the software
          provider ceases to provide products and services and new products remain under development. Any such occurrence could materially and adversely impact our business, financial condition and results of operations.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">11</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;">Any errors or defects in, or failures of, third party software or applications could result in errors or defects in or failures of our food service technology products and services, which could be costly to correct
          and have a material adverse effect on our reputation, business, financial condition and results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We are currently dependent upon a manufacturer located in Thailand for the manufacturing and assembly of substantially all of our printers and terminals, and any further or
          future disruption in the businesses or operations of this manufacturer, political, social or economic instability, war, trade restrictions or tariffs, severe weather, changes in climate, additional public health crises and other events out of our
          control could materially adversely affect our business, financial condition and results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In an effort to maximize cost savings and operational benefits, we have outsourced substantially all of the manufacturing and assembly of our printers and terminals to a contract manufacturer located in Thailand.&#160;
          As a result, we are dependent on them for the manufacturing of our products, and any disruption in such manufacturing or the export of products from this manufacturer to the U.S. may adversely affect our business, financial condition and results
          of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Risks affecting the businesses and operations of our manufacturer in Thailand include: political and regional strife; war; labor shortages; severe weather and natural disasters such as earthquakes, hurricanes,
          fires, and floods, whether as a result of climate change or otherwise; lengthy power outages; increased pricing, financial instability and capacity constraints of shippers; government imposition of tariffs which may impact the cost or
          availability of products or components that we purchase; and concerns with or threats of public health crises, contagious diseases or health epidemics.&#160; Tthe risk to our business posed by any disruption in manufacturing is exacerbated by the
          concentration of substantially all of our manufacturing operations in one manufacturer located in Thailand.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">If the contract manufacturer is unable to manufacture our products or continue operating its facilities, as occurred in connection with the COVID-19 pandemic, or if cost increases (as a result of tariffs or
          otherwise) make continued reliance on the contract manufacturer impractical, we will have limited means for the final assembly of a majority of our products until we are able to secure the manufacturing capability at another facility or develop
          an alternative manufacturing facility, which could be costly and time consuming and have a material adverse effect on our operating and financial results.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We may also incur increased business continuity and reputational risks to the extent that we continue to outsource the manufacturing and assembly of our products to foreign third party service providers.&#160; For
          example, outsourcing of manufacturing prevents us from exercising control over the assembly of certain of our products and related operations or processes, including the internal controls associated with operations and processes conducted and the
          quality of our products assembled by contract manufacturers.&#160; If we are unable to effectively manage and oversee our outsourcing strategy, we may not realize cost structure efficiencies and our operating and financial results could be materially
          adversely affected.&#160; Outsourcing also exposes us to increased risk of infringement or misappropriation of our intellectual property, to which our manufacturers have access.&#160; Because our manufacturer is located in Asia, there is no guarantee that
          our intellectual property rights will be protected or enforced to the same extent as under U.S. federal and state laws. Consequently, we may not be able to prevent third parties from developing or selling products made using our technologies.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We rely on distributors and resellers to sell our products and services.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We use a variety of distribution channels, including OEMs and distributors, to market and sell our products and services.&#160; We may be adversely impacted by any conflicts that could arise between and among our
          various sales channels.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our dependence upon distributors and resellers exposes us to numerous risks, including:</div>

        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>loss of channel and the ability to bring new products to market;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>concentration of credit risk, including disruption in distribution should the distributors, and / or resellers&#8217; financial condition deteriorate;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>reduced visibility to end user demand and pricing issues which makes forecasting more difficult;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>distributors or resellers leveraging their buying power to change the terms of pricing, payment and product delivery schedules; and</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>direct competition should a distributor or reseller decide to manufacture printers internally or source printers from a competitor.</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <div>We cannot guarantee that resellers will not reduce, delay or eliminate purchases from us, which could have a material adverse effect upon the business, consolidated results of operations and financial condition.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">12</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We currently rely on third party service providers to host our food service technology software and deliver certain services, and any interruptions or delays in services from
          these third parties could impair the delivery of our products and services, and our business, results of operations, and financial condition could be materially adversely affected.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We rely on a third-party service provider to host our food service technology software. Third parties also provide services to key aspects of our operations, including Internet connections and networking, data
          storage and processing, trust and safety and security infrastructure.&#160; We do not control the operation, physical security, or data security of any of these third-party providers. Our efforts to use commercially reasonable diligence in the
          selection and retention of such third-party providers may be insufficient or inadequate to prevent or remediate such operational and security risks. Our third-party providers may be subject to intrusions, computer viruses, denial-of-service
          attacks, sabotage, acts of vandalism, acts of terrorism or other misconduct. They are vulnerable to damage or interruption from power loss, telecommunications failures, fires, floods, earthquakes, hurricanes, tornadoes, and similar events, and
          they may be subject to financial, legal, regulatory, and labor issues, each of which may impose additional costs or requirements on us or prevent these third parties from providing services to us or our customers on our behalf. From time to time,
          our software maintained by these third parties has experienced brief interruptions in service which we have been able to resolve promptly by working with the third-party providers, and there may be future such interruptions that could have a
          material adverse effect on our customer relationships or be more costly or time-consuming to resolve.&#160; In addition, these third parties may breach their agreements with us, disagree with our interpretation of contract terms or applicable laws and
          regulations, refuse to continue or renew these agreements on commercially reasonable terms or at all, fail to or refuse to process transactions or provide other services adequately, take actions that degrade the functionality of our platform and
          services, increase prices, impose additional costs or requirements on us or our customers, or give preferential treatment to our competitors. If we are unable to procure alternatives in a timely and efficient manner and on acceptable terms, or at
          all, we may be subject to business disruptions, losses, or costs to remediate any of these deficiencies. The occurrence of any of the above events could result in reputational damage, legal or regulatory proceedings, loss of customers or other
          adverse consequences, any of which could materially adversely affect our business, results of operations, and financial condition.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to Competition, Sales and Marketing</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We compete in highly competitive markets, which are likely to become more competitive. Competitors may be able to respond more quickly to new or emerging technology and
          changes in customer requirements.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We face significant competition in developing and selling our printers, terminals, software, consumables and services.&#160; Our principal competitors have substantial marketing, financial, development and personnel
          resources.&#160; To remain competitive, we believe we must continue to provide:</div>

        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>technologically advanced products that satisfy user demands;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>superior customer service;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>high levels of quality and reliability; and</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>dependable and efficient distribution networks.</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <div style="text-align: justify;">We cannot ensure we will be able to compete successfully against current or future competitors.&#160; Increased competition may result in price reductions, lower gross profit margins and loss of market share, and could
          require increased spending on research and development, sales and marketing and customer support.&#160; For example, we believe our largest competitor in the casino and gaming market has resumed supplying product at full capacity which has resulted in
          a more competitive environment in the casino and gaming market going forward and may cause future downward pricing pressure and a loss of market share that we had gained while the competitor was unable to supply product.&#160; Any such occurrence
          could negatively impact our worldwide casino and gaming sales.&#160; In addition, some competitors may make strategic acquisitions or establish cooperative relationships with suppliers or companies that produce complementary products, which may
          include relationships with our software developer.&#160; Any of these factors could reduce our earnings.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">13</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our food service technology market operates in an emerging and evolving industry, which makes it difficult to evaluate the future prospects of this market.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We launched our BOHA! offering in 2019 and have grown our food service technology significantly since then.&#160; This is still an emerging market that is continually evolving as technology develops to automate
          back-of-house tasks that were historically performed manually.&#160; This evolving nature of the food service technology market may make it difficult to evaluate our future prospects in this market and the risks and challenges we may encounter. These
          risks and challenges include, but are not limited to, our ability to:</div>

        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>accurately forecast our revenue and plan our operating expenses;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>increase the number of customers (and retain existing customers and their guests) using our platform;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>successfully compete with current and future competitors;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>successfully expand our market presence in existing markets and enter new markets and geographies;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>maintain and enhance the value of our reputation and brand;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>develop and maintain strategic relationships with other market participants that provide complementary products;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>adapt to rapidly evolving trends in the ways our customers interact with technology, including through the use of emerging artificial intelligence and machine learning technologies;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>timely respond to customer needs with technology developments that enable our products to evolve to meet the changing demands of the marketplace;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>avoid interruptions or disruptions in our service; and</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>manage the risk of loss relating to food safety issues if there is a failure of our offerings designed to help in part to assure perishable goods are safely preserved;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to Our Customers</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We are dependent on sales to one large customer; the loss of this customer or reduction in orders from this customer could materially affect our sales.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Casino and gaming sales to Light &amp; Wonder represent a material percentage of our net sales.&#160; A reduction, delay or cancellation in orders from this customer, including reductions or delays due to market,
          economic, or competitive conditions in the industries in which we serve, could have a material adverse effect upon our results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to Our International Operations</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">In addition to maintaining offices in the UK and Macau, we sell and ship a significant portion of our products internationally and rely on third parties that make up part of
          our global salesforce.&#160; The international nature of our operations may expose us to certain risks associated with doing business outside of the U.S., including risks posed by tariffs and changes in trade relations.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We sell a significant amount of our products to customers outside the United States. Shipments to international customers are expected to continue to account for a material portion of net sales. In addition, our
          manufacturer and suppliers are largely located in Thailand.&#160; As a result, our products are largely exported to one of our facilities in the United States, which makes our operations vulnerable to disruptions in trade that could adversely affect
          our business results.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">14</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;">Our international operations, including our reliance on manufacturers and suppliers located in Thailand, our worldwide sales team, and our sales to customers located outside the United States, expose us to
          disruptions in trade and other associated risks such as:</div>

        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>the imposition of additional duties, tariffs including those imposed by the new U.S. presidential administration), quotas, taxes, trade barriers, capital flow restrictions and other charges on imports and exports by the United States
                  or the governments of the countries in which we or our manufacturers and suppliers operate;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>delays in the delivery of cargo due to port security considerations, labor disputes such as dock strikes, and our reliance on a limited number of shipping and air carriers, which may experience capacity issues that adversely affect our
                  ability to ship inventory in a timely manner or for an acceptable cost;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>fluctuations in the value of the U.S. dollar against foreign currencies, which could restrict sales, or increase costs of purchasing, in foreign countries;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>economic or political instability in any of the countries in which we or our manufacturers or suppliers operate, which could result in a reduction in demand for our products or impair our foreign assets;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>a reduced ability or inability to sell in or purchase from certain markets as a result of export or import restrictions;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>potentially limited intellectual property protection in certain countries, such as China, may limit recourse against infringing products or cause us to refrain from selling in certain geographic territories;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>difficulties staffing and managing foreign operations; and</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>economic uncertainties and adverse economic conditions (including inflation and recession).</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <div style="text-align: justify;">Our business interruption insurance does not cover all possible situations, and there can be no assurance that the coverage would be adequate to compensate us for all losses that may occur in the event of a
          disruption.&#160; In addition, the business interruption insurance would not compensate us for the loss of opportunity and potential adverse impact, both short-term and long-term, on relations with our existing customers resulting from our inability
          to produce products for them.</div>

        <div>&#160;</div>

        <div style="font-weight: bold;">Risks Relating to Global Political and Economic Conditions</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We purchase component parts and consumable products from third-party and sole-source suppliers, and any interference with this supply chain may impact our ability to
          manufacture and sell our products.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We rely on third-party or sole-source suppliers to provide certain key components for our products.&#160; We do not have guaranteed supply contracts with any of our component suppliers, and our suppliers could delay
          shipments, increase prices or cease manufacturing or selling such components to us at any time, as occurred as a result of such as the shortages in global microchip availability we experienced during much of 2022 and 2023.&#160; These disruptions
          resulted in delays in delivery of products to customers and similar disruptions in the future could result in additional delays, even if we are able to source components from alternate suppliers.&#160; Supply chain disruptions have, in the past,
          impacted our ability to maintain sufficient inventory on hand.&#160; As a result, we have paid, and if future disruptions occur we may have to pay in the future, increased shipping charges to expedite our receipt of components and inventory and the
          delivery of finished products to our customers.&#160; In addition, we have incurred increased costs to obtain certain products and components from alternate suppliers when our usual suppliers did not have products available for us, and we may incur
          such costs in the future if we need to seek alternate suppliers for any of our components.&#160; Cost increases and component shortages may be exacerbated by events beyond our control, such as changing economic conditions, inflation, currency and
          commodity price fluctuations, tariffs (including those imposed by the new U.S. presidential administration) trade wars, resource availability, transportation costs, weather conditions and natural disasters, political unrest and instability, war
          (such as the ongoing military conflict between Russia and Ukraine and the conflict in the Middle East) and other factors impacting supply and demand pressures.&#160; Recurring or worsening disruptions in the supply chain of such component parts and
          consumable products could delay our production or release of our new products, cause us to incur additional freight costs and hinder our ability to meet our commitments to customers. If we are unable to obtain sufficient quantity of these
          components on commercially reasonable terms or in a timely manner, or if we are unable to obtain alternative sources for the components, sales of our products could be delayed or halted entirely or we may have to redesign our products, as we did
          with certain products in the recent past, to help meet market demand.&#160; In addition, supply chain constraints and the resulting delays affected customer ordering habits and customer demand by leading to a temporary increase in advance orders in
          2022 and into 2023.&#160; This resulted in a significant slowdown in customer order and shipment rates in 2024 as customers struggled to sell their on-hand inventory that has continued into 2025 with respect to one significant international casino and
          gaming customer that has not yet resumed ordering.&#160; Further, there can be no assurance that any cost increases attributable to future supply chain disruptions can be fully offset by price increases, or that we will continue to be able to fulfill
          orders on time, and continued or prolonged impacts on our supply chain may result in lost sales, reduced gross margins or damage to our end-customer relationships, which would have a material adverse effect on our financial results.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">15</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Catastrophic events, political unrest or a downturn in economic conditions may disrupt our business.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Geopolitical events, social unrest, war or the threat of war, including repercussions of the war&#160; between Russia and Ukraine,&#160; the war in the Middle East, conflict between China and Taiwan, terrorism, political
          instability, acts of public violence, boycotts, labor discord or disruptions, hostilities, pandemics or other public health crises, natural disasters or other catastrophic events may cause damage or disruption to our operations or the operations
          of our customers, international commerce, and the global economy, and thus could harm our business. In particular, the reactions of governments, markets, and the general public to such events, many of which are beyond our control, may result in a
          number of adverse consequences for our customers, business, operations, and results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">For example, the continuing war between Ukraine and Russia, as well as the financial and trade-related restrictions associated with Russia and Belarus and economic sanctions on certain individuals and entities in
          Russia and Belarus, have impacted international trade relations, and resulted in sustained increases in the cost of materials and components.&#160; If this war continues to persist or escalates, this may further disrupt global supply chains and could
          result in shortages of key materials or components that our suppliers require to satisfy our needs.&#160; Any increases in the cost, or shortages, of raw materials, components or energy may continue to create supply issues that could constrain
          manufacturing levels for our products.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In addition, based on the complex relationships among China, Hong Kong, Taiwan, and the United States, there is risk that political, diplomatic, and national security influences might lead to trade, technology, or
          capital disputes, or disruptions that may affect our business or suppliers in Asia. These tensions may be exacerbated by continuing or new sanctions imposed in connection with the Russia&#8211;Ukraine war, as there continues to be unwillingness on the
          part of China to support ongoing or expanded sanctions, which could distance China from its existing trade partners. More recently, both the United States and the European Union have considered imposing sanctions directly on Chinese companies
          believed to be assisting Russia. Any increase in geopolitical tensions or expansion of sanctions either in Russia or Belarus or against Chinese companies may have a significant negative impact on our business or on the regional or global economy.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In the event of a major earthquake, hurricane or catastrophic event such as fire, power loss, telecommunications failure, cyber-attack, war or terrorist attack, we may be unable to continue our operations and may
          endure system interruptions, reputational harm, breaches of data security, and loss of critical data, all of which would harm our business, results of operations, and financial condition. In addition, the insurance we maintain would likely not be
          adequate to cover our losses resulting from disasters or other business interruptions. Any downturn in the economy in general, including the impact of the Russia&#8211;Ukraine war and the Middle East war, or in the food service or casino and gaming
          industries in particular could result in reduced demand for our products and could adversely affect our business and results of operations.&#160; In addition, heightened security measures or responses to hostilities may cause certain governments to
          restrict the import or export of goods, as has occurred with respect to the export of oil from Russia, which may have an adverse effect on our ability to buy and sell goods or on the cost to obtain components.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to Regulations, Taxation, Governance and the Environment</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We recorded a full valuation allowance on the value of our net deferred tax assets in the United States, and we expect to maintain that full valuation allowance on such assets
          until we are able to demonstrate a consistent pattern of profitability.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We currently have deferred tax assets, which may be used to reduce taxable income in the future.&#160; We assess the realization of these deferred tax assets on a quarterly basis, and if we determine that it is more
          likely than not that some portion of these assets will not be realized, an income tax valuation allowance is recorded.&#160; During the fourth quarter 2024, while undertaking our quarterly assessment, the Company recorded a $7.3 million valuation
          allowance on the full value of the net deferred tax assets in the United States. We expect to continue to maintain a full tax valuation allowance on such assets until we are able to demonstrate a consistent pattern of profitability.&#160; As a result,
          we expect to record no income tax expense or benefit during 2025.&#160; We currently have no net deferred tax assets on our consolidated financial statements.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Changes in tax rates or tax liabilities could affect results.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We are subject to taxation in the United States and certain state and foreign jurisdictions. Significant judgment is required to determine and estimate our tax liabilities. Our future annual and quarterly tax rates
          could be affected by numerous factors, including changes in the (1) applicable tax laws; (2) composition of earnings in countries with differing tax rates; or (3) recoverability of our deferred tax assets and liabilities. Any of these
          developments or any future changes in federal, state, or international tax laws or tax rulings could adversely affect our effective tax rate and our results of operations.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">16</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-weight: bold;">Risks Related to our Indebtedness</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">The agreement governing our credit facility contains restrictions and limitations that could significantly affect our ability to operate our business, as well as significantly
          affect our liquidity.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">On March 3, 2020, we entered into a Loan and Security Agreement (the &#8220;Loan Agreement&#8221;) governing a credit facility (the &#8220;Siena Credit Facility&#8221;) with Siena Lending Group LLC (the &#8220;Lendor&#8221;).&#160; The Loan Agreement
          contains a number of significant covenants that could adversely affect our ability to operate our business, our liquidity, and our results of operations. These covenants restrict, among other things, our ability, and the ability of any future
          domestic subsidiary, to:</div>

        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>merge, consolidate, form subsidiaries or dispose of assets;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>acquire assets outside the ordinary course of business;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>enter into other transactions outside the ordinary course of business;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>sell, transfer, return or dispose of collateral;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>make loans to or investments in, or enter into transactions with, affiliates;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>incur or guarantee indebtedness, incur liens;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>redeem equity interests while borrowings are outstanding under the credit facility;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>change our capital structure; or</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>dissolve, divide, change our line of business or cease or suffer a disruption to all or a material portion of our business.</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <div style="text-align: justify;">Additionally, the Loan Agreement requires us to comply with a minimum excess availability covenant, which requires excess borrowing availability of at least $750 thousand and the Loan Agreement requires us to
          maintain outstanding borrowings of at least $3 million in principal amount. The breach of any covenants or obligations in the Loan Agreement, if not otherwise waived or amended, could result in a default under the Loan Agreement and could trigger
          acceleration of our obligations thereunder and permit the lender to foreclose on the collateral securing our obligations under the Loan Agreement and exercise other rights of secured creditors.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Availability under the Siena Credit Facility is subject to a borrowing base, which is based on eligible accounts receivable and inventory. To the extent that our eligible accounts receivable and inventory decline
          in value, our borrowing base will decrease, and the availability under the Siena Credit Facility currently is and may continue to be less than its stated amount and may decrease. In addition, if at any time the amount of outstanding borrowings
          and letters of credit under that facility exceeds the borrowing base, we are required to prepay borrowings and/or cash collateralize letters of credit sufficient to eliminate the excess.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our ability to comply with the covenants under the Loan Agreement or to maintain our borrowing base may be affected by events beyond our control, including deteriorating economic conditions.&#160; For example,
          reductions in the value of accounts receivable and inventory may occur in the future due to decreases in sales and production resulting from the impact of future economic uncertainties.&#160; Further, certain slow-moving inventory and accounts
          receivable that remain unpaid for a specified period of time are excluded from the borrowing base calculation. Thus, a decline in economic conditions and/or a decline in the financial condition of customers in the industries we serve may
          negatively impact the borrowing base both by decreasing the value of existing accounts and reducing the number and amount of new accounts. If we overestimate our inventory needs due to the uncertainty surrounding future economic conditions, we
          may have inventory that is considered slow-moving and thus excluded from the borrowing base calculation, and any reduction in production in response to decreased demand would also result in a lower inventory value and thus a lower borrowing base.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Any of these events could require us to seek waivers or amendments of covenants or alternative sources of financing or to reduce expenditures. We cannot assure you that such waivers, amendments or alternative
          financing could be obtained, or if obtained, would be on terms acceptable to us, or that we would be able to reduce expenditures enough to offset any decrease in the borrowing base, or that we could make such reductions without a material
          negative impact on our business.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">17</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-weight: bold;">General Risk Factors</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">General economic conditions could have a material adverse effect on our business, operating results and financial condition.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our business is subject to general economic conditions.&#160; Uncertainty or negative trends in U.S. or international economic and investment climates, including the impact of developments in U.S.-China trade relations,
          as well as economic impacts from the Russia-Ukraine war and the Middle East war, and any continued inflation attributable in part to supply chain disruptions or any other economic factors, could adversely affect our business.&#160; For example,
          customers or potential customers could reduce or delay orders, key suppliers could become insolvent, which could result in production delays, and our customers may become insolvent or be unable to obtain credit.&#160; Any of these possible effects
          could impact our ability to effectively manage inventory levels and collect receivables, create unabsorbed costs due to lower net sales, and ultimately decrease our net sales and profitability including write-downs of assets.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our stock price may fluctuate significantly.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">The market price of our common stock could fluctuate significantly in response to variations in quarterly operating results and other factors, such as:</div>

        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>prevailing domestic and international market and economic conditions, and conditions in the industries we serve, including current market volatility, inflation and rising interest rates;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>adverse business conditions faced by customers, or bankruptcies or store closures of our customers resulting from adverse economic conditions due to inflation or otherwise;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>changes in our business, operations or prospects;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>developments in our relationships with our customers or strategic partners;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>announcements of new products or services by us or by our competitors;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>announcement or completion of acquisitions by us or by our competitors;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>changes in existing, or adoption of additional, government regulations;</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>developments or announcements with respect to our strategic review process and the pace of progress with respect to that process, and</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>unfavorable or reduced analyst coverage.</div>
              </td>

  </tr>


</table>
        <div>&#160;</div>

        <div style="text-align: justify;">In addition, the stock market may experience significant price fluctuations year-to-year.&#160; Broad market fluctuations, general economic conditions and specific conditions in the industries in which we operate may
          adversely affect the market price of our common stock.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Unfavorable analyst coverage or a reduction in analyst coverage of our common stock may adversely affect the price of our common stock.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">The trading market for our common stock relies in part on the research and reports that industry or financial analysts may publish about us, our business, our markets and our competitors. We currently have limited
          analyst coverage, and many investment banks no longer find it profitable to provide securities research on micro-cap and small-cap companies.&#160; If securities analysts do not cover our common stock in the future, the lack of research coverage may
          adversely affect the market price of our common stock. Furthermore, if one or more of the analysts who cover us downgrade our stock, or if those analysts issue other unfavorable commentary about us or our business, our stock price may decline.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our common stock is traded on the Nasdaq Global Market.&#160; During the year ended December 31, 2024, the average daily trading volume for our common stock as reported by the Nasdaq Global Market was approximately
          22,000 shares.&#160; We are uncertain whether a more active trading market in our common stock will develop.&#160; As a result, relatively small trades may have a significant impact on the market price of our common stock, which could increase the
          volatility and depress the price of our common stock.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">18</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our common stock is thinly traded, and investors may be unable to sell their shares at their desired prices, or at all, and sales of large blocks of shares may adversely
          affect the price of our common stock.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our common stock has historically been sporadically or &#8220;thinly&#8221; traded, meaning that the number of persons interested in purchasing shares of our common stock at prevailing prices at any given time may be
          relatively small. This could lead to wide fluctuations in our share price. Investors may be unable to sell their common stock at or above their purchase price, which may result in substantial losses. As a consequence of this lack of liquidity,
          the trading of relatively small quantities of shares by our stockholders may disproportionately influence the price of shares of our common stock in either direction. The price of shares of our common stock could, for example, decline
          precipitously in the event a large number of shares of our common stock are sold on the market without commensurate demand, while an issuer with a more robust daily trading volume for its common stock might better absorb those sales without an
          adverse impact on its share price.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">If we raise additional capital in the future, existing stockholder ownership interest in the Company could be diluted or otherwise adversely impacted, and future sales of our
          common stock or other financing arrangements may cause our stock price to decline.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In the future, we may sell additional shares of our common stock in public or private offerings, or we may obtain funds through a credit facility or by issuing debt or preferred securities. We may also issue
          additional shares of our common stock to finance future acquisitions. Shares of our common stock are also available for future issuance and sale pursuant to stock options and other equity awards that we have granted to our employees, and in the
          future, we may grant additional stock options, restricted stock units and other forms of equity compensation to our employees. Any issuance of equity we may undertake in the future to raise additional capital could cause the price of our common
          stock to decline, or require us to issue shares at a price that is lower than that paid by holders of our common stock in the past, which would result in those newly issued shares being dilutive. Sales of our common stock or the perception that
          such sales could occur may adversely affect prevailing market prices for shares of our common stock and could impair our ability to raise capital through future offerings. The lender under our existing debt agreement has rights that are senior to
          your rights as a common stockholder, and if we obtain funds in the future through a credit facility or through the issuance of debt or preferred securities, the lenders of such facility or the holders of such securities would likely also have
          rights senior to the rights of our common stockholders, which could impair the value of our common stock.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We do not intend to pay dividends for the foreseeable future, so investors must rely on price appreciation to realize a gain on their investment.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We have not declared or paid cash dividends on our capital stock since November 2019.&#160; We currently intend to retain any future earnings to finance our operations and the expansion of our food service technology
          business, and we do not anticipate declaring or paying any dividends to holders of our common stock in the foreseeable future. Any determination to pay dividends in the future will be at the discretion of our Board of Directors. Accordingly,
          investors must rely on sales of their common stock after price appreciation, which may never occur, as the only way to realize future gains on their investments.</div>

        <div>&#160;</div>

        <div style="font-style: italic; font-weight: bold;">The Company&#8217;s goodwill may become impaired, which could require a significant charge to earnings be recognized.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">In accordance with GAAP, we review goodwill at least annually and when an event occurs or circumstances change that indicate that the carrying value may not be recoverable, including as a result of declines in
          stock price, market capitalization, reduced future cash flow estimates or slower growth rates in our industry. Future operating results used in the assumptions underlying such as sales or profit forecasts, may not materialize, and the Company may
          be required to record a significant charge to earnings in the financial statements for the period in which any impairment is determined, resulting in a decrease in our earnings or an increase in our losses in such period and an unfavorable impact
          on our results of operations.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We cannot provide any assurance that current laws, or any laws enacted in the future, will not have a material adverse effect on our business.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our operations are subject to laws, rules, regulations, including environmental regulations, government policies and other requirements in a variety of jurisdictions, including those in which we conduct business.&#160;
          Changes in such laws, rules, regulations, policies or requirements could result in the need to modify our products, could delay the development of new products and could affect the demand for our products, which may have an adverse impact on our
          future operating results.&#160; If we do not comply with applicable laws, rules and regulations we could be subject to costs and liabilities and our business may be adversely impacted.</div>

        <div>&#160;</div>

        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">19</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">We take advantage of specified scaled disclosure requirements applicable to a &#8220;smaller reporting company&#8221; under Regulation S-K, and the information that we provide to
          stockholders may therefore be different than they might receive from other public companies. If some investors find our shares of common stock less attractive as a result of this scaled disclosure, there may be a less active trading market for
          our shares of common stock, which may increase the volatility of the market price of our common stock.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We are a &#8220;smaller reporting company,&#8221; as defined in Item 10(f)(1) of Regulation S-K.&#160; As a smaller reporting company, we take advantage of specified scaled disclosure and other requirements that are otherwise
          applicable generally to public companies.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We intend to continue to take advantage of certain of the scaled disclosure requirements of smaller reporting companies and may continue to do so until we are no longer a smaller reporting company. We will cease to
          be a smaller reporting company if we have (i) equal to or greater than $250 million in market value of our shares held by non-affiliates as of the last business day of our second fiscal quarter, (ii) equal to or greater than $100 million in
          annual revenue for the most recent fiscal year or (iii) less than $100 million in annual revenue for the most recent fiscal year and the market value of our shares held by non-affiliates exceeds $700 million as of the last business day of our
          second fiscal quarter.&#160; We choose to take advantage of some but not all of these scaled disclosure requirements; therefore, the information that we provide stockholders may be different than one might get from other public companies.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We are also a &#8220;non-accelerated filer&#8221; within the meaning of Rule 12b-2 promulgated under the Exchange Act, and we are not required to comply with the auditor attestation requirements of Section 404 of the
          Sarbanes-Oxley Act of 2002, as amended, with respect to management&#8217;s assessment of our internal control over financial reporting. Therefore, our internal control over financial reporting will not receive the level of review provided by the
          process relating to the auditor attestation included in annual reports of issuers that are subject to the auditor attestation requirements.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">We cannot predict if investors will find our securities less attractive because we rely on these available exemptions. If some investors find our shares of common stock less attractive as a result, there may be a
          less active trading market for our shares of common stock and the market price of such shares of common stock may be more volatile.</div>

        <div>&#160;</div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Our Amended and Restated By-Laws designate certain Delaware courts as the sole and exclusive forum for certain types of actions and proceedings that may be initiated by our
          stockholders, which could limit our stockholders&#8217; ability to obtain a favorable judicial forum for disputes with us or our directors, officers or stockholders.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">Our Amended and Restated By-Laws (the &#8220;By-Laws&#8221;) provide that, unless we consent in writing to the selection of an alternative forum, to the fullest extent permitted by law, all Internal Corporate Claims must be
          brought solely and exclusively in the Court of Chancery of the State of Delaware (or, if such court declines to accept jurisdiction, the Superior Court of the State of Delaware, or, if such other court declines to accept jurisdiction, the United
          States District Court for the District of Delaware). The By-Laws define &#8220;Internal Corporate Claims&#8221; to mean claims, including claims in the right of the Company, brought by a current or former stockholder (including a current or former beneficial
          owner) (i) that are based upon a violation of a duty by a current or former director or officer or stockholder in such capacity or (ii) as to which the General Corporation Law of the State of Delaware confers jurisdiction upon the Court of
          Chancery of the State of Delaware.</div>

        <div>&#160;</div>

        <div style="text-align: justify;">This choice of forum provision may increase costs to bring a claim, discourage claims or limit a stockholder&#8217;s ability to bring a claim in a judicial forum that it finds favorable for disputes with us or our
          directors, officers or other stockholders, which may discourage such lawsuits against us and our directors, officers and stockholders. Alternatively, if a court were to find this choice of forum provision inapplicable to, or unenforceable in
          respect of, one or more of the specified types of actions or proceedings, we may incur additional costs associated with resolving such matters in other jurisdictions, which could adversely affect our business, financial condition or results of
          operations. The choice of forum provision in the By-Laws will not preclude or contract the scope of exclusive federal or concurrent jurisdiction for actions brought under the federal securities laws including the Exchange Act or the Securities
          Act or the respective rules and regulations promulgated thereunder.</div>

        <div>&#160;</div>

        <div>
          <a id="Item1B."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt; white-space: nowrap;">
                  <div style="text-align: left; font-weight: bold;">Item 1B.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Unresolved Staff Comments.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">Not applicable.</div>

        <div><br/></div>

      </div>

      <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">20</span></div>

        <div class="BRPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

        </div>

      </div>

    </div>


  </div>
<div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;">

    <div>
      <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Item 1C.<a id="Item1C."><!--Anchor--></a> Cybersecurity</div>

      <div style="font-weight: bold; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>


      <ix:nonNumeric name="cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" id="Text_04a084bfc8f74de5a7f4339c75c5c577" contextRef="c20240101to20241231" escape="true" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a91">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Risk Management and Strategy</div>
</ix:nonNumeric>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a91" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a92">
<div><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a92" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a93">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Company&#8217;s Board of Directors recognizes the critical importance of maintaining the trust and confidence of our customers, clients, business
        partners and employees. The Board of Directors is actively involved in oversight of the Company&#8217;s risk management program, and cybersecurity represents an important component of the Company&#8217;s overall approach to enterprise risk management (&#8220;ERM&#8221;).
        <ix:nonNumeric name="cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock" id="Text_49df8c1cc6924484a31572b21a069b40" contextRef="c20240101to20241231" escape="true"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="cyd:CybersecurityRiskManagementProcessesIntegratedFlag" id="Fact_0efd458de08d491fa39b43fcdf881560" contextRef="c20240101to20241231" format="ixt:fixed-true">The Company&#8217;s cybersecurity policies, standards, processes and practices are fully integrated into the Company&#8217;s ERM program</ix:nonNumeric> and are based on recognized frameworks established by the National Institute of Standards and Technology, the International Organization for Standardization and other applicable industry standards. In general, the
        Company seeks to address cybersecurity risks through a comprehensive, cross-functional approach that is focused on preserving the confidentiality, security and availability of the information that the Company collects and stores by identifying,
        preventing and mitigating cybersecurity threats and effectively responding to cybersecurity incidents when they occur.</span></ix:nonNumeric> As one of the critical elements of the Company&#8217;s overall ERM approach, the Company&#8217;s cybersecurity
        program is focused on the following key areas:</div>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a93" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a94">
<div style="font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a94" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a95">
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Governance:</span> As discussed in more detail under the heading &#8220;Governance,&#8221; the Board of Directors&#8217; oversight of cybersecurity risk management is supported by the Audit Committee of the Board of
                  Directors (the &#8220;Audit Committee&#8221;), which regularly interacts with the Company&#8217;s ERM function, the Company&#8217;s Vice President of Information Technology, other members of management and relevant management committees and councils, including
                  management&#8217;s Sarbanes-Oxley &amp; Cybersecurity Steering Committee.</span></div>
            </td>

  </tr>


</table>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a95" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a96">
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Collaborative Approach:</span> The Company has implemented a comprehensive, cross-functional approach to identifying, preventing and mitigating cybersecurity threats and incidents, while also
                  implementing controls and procedures that are designed to provide for the prompt and appropriate internal reporting of certain cybersecurity incidents, either in the form of a single unauthorized occurrence or a series of unauthorized
                  occurrences, so that decisions regarding the public disclosure and reporting of such incidents can be made by management in a timely manner.</span></div>
            </td>

  </tr>


</table>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a96" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a97">
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Technical Safeguards:</span> The Company deploys technical safeguards that are designed to protect the Company&#8217;s information systems from cybersecurity threats, including firewalls, intrusion
                  prevention and detection systems, anti-malware functionality and access controls, which are evaluated and improved through vulnerability assessments and cybersecurity threat intelligence.</span></div>
            </td>

  </tr>


</table>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a97" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a98">
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Incidence Response and Recovery Planning:</span> The Company has established and maintains comprehensive incident response and recovery plans intended to fully and timely address the Company&#8217;s
                  response to a cybersecurity incident, and such plans are tested and evaluated on a regular basis.</span></div>
            </td>

  </tr>


</table>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a98" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a99">
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;"><ix:nonNumeric name="cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" id="Fact_00d0c44ba62d4671aed84d87d58437d5" contextRef="c20240101to20241231" format="ixt:fixed-true">Third-Party Risk Management</ix:nonNumeric>:</span> The Company maintains a comprehensive, risk-based
                  approach to identifying and overseeing cybersecurity risks presented by third parties, including vendors, service providers and other external users of the Company&#8217;s systems, as well as the systems of third parties that could adversely
                  impact our business in the event of a cybersecurity incident affecting those third-party systems.</span></div>
            </td>

  </tr>


</table>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a99" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a910">
<table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Education and Awareness:</span> The Company provides regular, mandatory training for personnel regarding cybersecurity threats as a means to equip the Company&#8217;s personnel with effective tools to
                  proactively address cybersecurity threats and prevent incursions and to communicate the Company&#8217;s evolving information security policies, standards, processes and practices.&#160; Our awareness program includes assessment of our personnel&#8217;s
                  preparedness through regular phishing e-mail alerts, highlighted banners that warn about external senders, and tests administered to help the Company&#8217;s personnel interrogate, navigate around, and avoid clicking suspicious and unfamiliar
                  links from unknown senders.</span></div>
            </td>

  </tr>


</table>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a910" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a911">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"> <br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a911" continuedAt="Text_68ba2d77c7a74b28a0147d258b9e91a912">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Company engages in the periodic assessment and testing of the Company&#8217;s policies, standards, processes and practices that are designed to
        address cybersecurity threats and incidents. These efforts include a wide range of activities, including audits, assessments, tabletop exercises, threat modeling, vulnerability testing and other exercises focused on evaluating the effectiveness of
        our cybersecurity measures and planning. <ix:nonNumeric name="cyd:CybersecurityRiskManagementThirdPartyEngagedFlag" id="Fact_9fd63d19bcd74755af706e8acd7f4878" contextRef="c20240101to20241231" format="ixt:fixed-true">The Company engages third parties to perform assessments on our cybersecurity measures</ix:nonNumeric>,
        including information security maturity assessments, audits and independent reviews of our information security control environment and operating effectiveness. The results of such assessments, audits and reviews are periodically reported to the
        Audit Committee and the Board of Directors, and the Company adjusts its cybersecurity policies, standards, processes and practices as appropriate based on the information provided by these assessments, audits and reviews.</div>
</ix:continuation>
      <div style="font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>


      <ix:nonNumeric name="cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock" id="Text_f32ca4ae8d85440ea7f5fd5ac81994f3" contextRef="c20240101to20241231" escape="true" continuedAt="Text_7307f8fb79b64d339798323179cc2a841">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-weight: bold; color: rgb(0, 0, 0); font-variant: normal; text-transform: none;">Governance</div>
</ix:nonNumeric>
      <ix:continuation id="Text_7307f8fb79b64d339798323179cc2a841" continuedAt="Text_7307f8fb79b64d339798323179cc2a842">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-weight: bold; color: rgb(0, 0, 0); font-variant: normal; text-transform: none;"> <br/>
      </div>
</ix:continuation>

      <ix:continuation id="Text_7307f8fb79b64d339798323179cc2a842" continuedAt="Text_7307f8fb79b64d339798323179cc2a843">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" id="Text_4b940f4abe974312855cbd4080360771" contextRef="c20240101to20241231" escape="true"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Board of Directors, in coordination with the Audit Committee, oversees the Company&#8217;s ERM process, including the management of risks arising
        from cybersecurity threats.</span></ix:nonNumeric> <ix:nonNumeric name="cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" id="Text_c5c6e797420f43a8a45e0fd1a4737292" contextRef="c20240101to20241231" escape="true"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Board of Directors and the Audit Committee each receive presentations and
        reports on cybersecurity risks, which address a wide range of topics including recent developments, evolving standards, vulnerability assessments, third-party and independent reviews, the threat environment, technological trends and information
        security considerations arising with respect to the Company&#8217;s peers and third parties. The Board of Directors and the Audit Committee also receive prompt and timely information regarding any cybersecurity incident that meets established reporting
        thresholds or that management otherwise deems to be significant, as well as ongoing updates regarding any such incident until it has been addressed.</span></ix:nonNumeric> <ix:nonNumeric name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" id="Text_b438095065e74ecbb2893bd298f32c40" contextRef="c20240101to20241231" escape="true"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" id="Fact_439755419f024ec8be9909e6d10cb499" contextRef="c20240101to20241231" format="ixt:fixed-true">On an annual basis, the Board of Directors and Audit Committee discuss the Company&#8217;s approach to cybersecurity risk management with the members of management&#8217;s Sarbanes-Oxley &amp; Cybersecurity Steering Committee, which includes the Company&#8217;s President and Chief Financial Officer (&#8220;CFO&#8221;) and Vice President of Information Technology.</ix:nonNumeric></span></ix:nonNumeric></div>
</ix:continuation>
      <ix:continuation id="Text_7307f8fb79b64d339798323179cc2a843" continuedAt="Text_7307f8fb79b64d339798323179cc2a844">
<div style="font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>
</ix:continuation>
      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">21</span></div>

        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

        <div class="BRPFPageHeader" style="width: 100%;">
          <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

        </div>

      </div>


      <ix:continuation id="Text_7307f8fb79b64d339798323179cc2a844">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" id="Text_fbc1a86e6055420b879ecba93255f772" contextRef="c20240101to20241231" escape="true"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="cyd:CybersecurityRiskRoleOfManagementTextBlock" id="Text_d1b1f6ae2ded464ba4eed339e0fdf8fc" contextRef="c20240101to20241231" escape="true" continuedAt="Text_5c199e21beb1410bbe9559ebe508924b1"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The <ix:nonNumeric name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" id="Fact_4d8ffe0b1d1447ca83af290ce08b8f0b" contextRef="c20240101to20241231" format="ixt:fixed-true">Sarbanes-Oxley &amp; Cybersecurity Steering Committee</ix:nonNumeric></span></ix:nonNumeric><ix:continuation id="Text_5c199e21beb1410bbe9559ebe508924b1"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">, in coordination with the Company&#8217;s outside legal counsel, works collaboratively across the Company and with various consultants to implement a program designed to protect the Company&#8217;s information systems from
        cybersecurity threats and to promptly respond to any cybersecurity incidents in accordance with the Company&#8217;s incident response and recovery plans.</span></ix:continuation></span></ix:nonNumeric>
        <ix:nonNumeric name="cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" id="Text_fa2e75688b3a4b9898b107190c41d7dd" contextRef="c20240101to20241231" escape="true"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Vice President of Information Technology has served in various roles in information technology and information security for over 25 years and holds undergraduate and graduate degrees in
        computer science. As described in more detail above under the heading &#8220;Information about our Executive Officers,&#8221; the Company&#8217;s Chief Executive Officer and the President and CFO each hold undergraduate and graduate degrees in their respective
        fields, and each has over 30 years of experience managing risks at the Company and at similar companies, including risks arising from cybersecurity threats.</span></ix:nonNumeric></div>
</ix:continuation>

      <div style="font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>

      <ix:nonNumeric name="cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" id="Text_1a2a38c81c8c4521b930e015efc27dba" contextRef="c20240101to20241231" escape="true"><ix:continuation id="Text_68ba2d77c7a74b28a0147d258b9e91a912">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" id="Fact_802cc63b207846c785c19b01dfb3aae5" contextRef="c20240101to20241231" format="ixt:fixed-false">Cybersecurity threats, including as a result of previous cybersecurity incidents, have not materially affected, and are not reasonably likely to materially affect, the Company, including its business strategy, results of operations or financial condition.</ix:nonNumeric><br/>
      </div>
</ix:continuation></ix:nonNumeric>
    </div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0);">
  <div>
    <div>
      <div>
        <div>
          <div> <br/>
          </div>

          <a id="Item2."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 2.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Properties.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">Our principal facilities as of December 31, 2024 are listed below.&#160; We believe that all facilities generally are in good condition, adequately maintained and suitable for their present and currently contemplated
          uses.</div>

        <div style="text-align: justify;"> <br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 25%; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
                <div style="font-weight: bold;">Location</div>
              </td>

    <td style="width: 1%; vertical-align: top;">&#160;</td>

    <td style="width: 35.36%; vertical-align: bottom; border-bottom: #000000 2px solid;">
                <div style="text-align: center; font-weight: bold;">Operations Conducted</div>
              </td>

    <td style="width: 1.11%; vertical-align: bottom;">&#160;</td>

    <td style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; font-weight: bold;">Size</div>
                <div style="text-align: center; font-weight: bold;">(Approx. Sq. Ft.)</div>
              </td>

    <td style="width: 0.97%; vertical-align: bottom;">&#160;</td>

    <td style="width: 9.31%; vertical-align: bottom; border-bottom: #000000 2px solid;">
                <div style="text-align: center; font-weight: bold;">Owned</div>
                <div style="text-align: center; font-weight: bold;">or Leased</div>
              </td>

    <td style="width: 1.24%; vertical-align: top;">&#160;</td>

    <td style="width: 14.16%; vertical-align: bottom; border-bottom: #000000 2px solid;">
                <div style="text-align: center; font-weight: bold;">Lease</div>
                <div style="text-align: center; font-weight: bold;"> Expiration Date</div>
              </td>

  </tr>

  <tr>

    <td style="width: 25%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>Hamden, Connecticut</div>
              </td>

    <td style="width: 1%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 35.36%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>Executive offices and sales office</div>
              </td>

    <td style="width: 1.11%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 11.67%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: right;">11,100</div>
              </td>

    <td style="width: 0.97%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 9.31%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center;">Leased</div>
              </td>

    <td style="width: 1.24%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 14.16%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center;">October 31, 2025</div>
              </td>

  </tr>

  <tr>

    <td style="width: 25%; vertical-align: bottom;">
                <div>Ithaca, New York</div>
              </td>

    <td style="width: 1%; vertical-align: top;">&#160;</td>

    <td style="width: 35.36%; vertical-align: bottom;">
                <div>Hardware design and development, assembly and service facility</div>
              </td>

    <td style="width: 1.11%; vertical-align: bottom;">&#160;</td>

    <td style="width: 1%; vertical-align: bottom;">&#160;</td>

    <td style="width: 11.67%; vertical-align: bottom;">
                <div style="text-align: right;">73,900</div>
              </td>

    <td style="width: 0.97%; vertical-align: bottom;">&#160;</td>

    <td style="width: 9.31%; vertical-align: bottom;">
                <div style="text-align: center;">Leased</div>
              </td>

    <td style="width: 1.24%; vertical-align: top;">&#160;</td>

    <td style="width: 14.16%; vertical-align: bottom;">
                <div style="text-align: center;">May 31, 2026</div>
              </td>

  </tr>

  <tr>

    <td style="width: 25%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>Las Vegas, Nevada</div>
              </td>

    <td style="width: 1%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 35.36%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>Software design and development and casino and gaming sales office</div>
              </td>

    <td style="width: 1.11%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 1%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 11.67%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: right;">19,600</div>
              </td>

    <td style="width: 0.97%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 9.31%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center;">Leased</div>
              </td>

    <td style="width: 1.24%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 14.16%; vertical-align: bottom; background-color: rgb(204, 238, 255); white-space: nowrap;">
                <div style="text-align: center;">November 30, 2025</div>
              </td>

  </tr>

  <tr>

    <td style="width: 25%; vertical-align: bottom;">
                <div>Doncaster, UK</div>
              </td>

    <td style="width: 1%; vertical-align: top;">&#160;</td>

    <td style="width: 35.36%; vertical-align: bottom;">
                <div>Sales office and service center</div>
              </td>

    <td style="width: 1.11%; vertical-align: bottom;">&#160;</td>

    <td style="width: 1%; vertical-align: bottom;">&#160;</td>

    <td style="width: 11.67%; vertical-align: bottom;">
                <div style="text-align: right;">6,000</div>
              </td>

    <td style="width: 0.97%; vertical-align: bottom;">&#160;</td>

    <td style="width: 9.31%; vertical-align: bottom;">
                <div style="text-align: center;">Leased</div>
              </td>

    <td style="width: 1.24%; vertical-align: top;">&#160;</td>

    <td style="width: 14.16%; vertical-align: bottom;">
                <div style="text-align: center;">August 24, 2026</div>
              </td>

  </tr>

  <tr>

    <td style="width: 25%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>Macau, China</div>
              </td>

    <td style="width: 1%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 35.36%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div>Sales office</div>
              </td>

    <td style="width: 1.11%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 1%; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 11.67%; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
                <div style="text-align: right;">180</div>
              </td>

    <td style="width: 0.97%; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 9.31%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center;">Leased</div>
              </td>

    <td style="width: 1.24%; vertical-align: top; background-color: rgb(204, 238, 255);">&#160;</td>

    <td style="width: 14.16%; vertical-align: bottom; background-color: rgb(204, 238, 255);">
                <div style="text-align: center;">April 30, 2025</div>
              </td>

  </tr>

  <tr>

    <td style="width: 25%; vertical-align: bottom;">&#160;</td>

    <td style="width: 1%; vertical-align: top;">&#160;</td>

    <td style="width: 35.36%; vertical-align: bottom;">&#160;</td>

    <td style="width: 1.11%; vertical-align: bottom;">&#160;</td>

    <td style="width: 1%; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td style="width: 11.67%; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);">
                <div style="text-align: right;">110,780</div>
              </td>

    <td style="width: 0.97%; vertical-align: bottom;">&#160;</td>

    <td style="width: 9.31%; vertical-align: bottom;">&#160;</td>

    <td style="width: 1.24%; vertical-align: top;">&#160;</td>

    <td style="width: 14.16%; vertical-align: bottom;">&#160;</td>

  </tr>


</table>
        <div><br/>
        </div>

        <div>
          <a id="Item3."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 3.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Legal Proceedings.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">The Company may, in the ordinary course of business, become a party to litigation involving collection matters, contract claims and other legal proceedings relating to the conduct of its business.&#160; As of December
          31, 2024, we are not involved in any pending or, to our knowledge, threatened legal proceedings, including legal proceedings contemplated by governmental authorities, the outcome of which we believe would be material to our financial condition or
          results of operations.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item4."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: justify; font-weight: bold;">Item 4.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; font-weight: bold;">Mine Safety Disclosures.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">Not applicable.</div>

        <div style="text-align: justify;"> <br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">22</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <!--PROfilePageNumberReset%Num%23%%%-->
        <div style="text-align: center; font-weight: bold;">PART II</div>

        <div><br/>
        </div>

        <div>
          <a id="Item5."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 5.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Market for Registrant&#8217;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">Our common stock is traded on the Nasdaq Global Market under the symbol TACT.&#160; As of February 28, 2025, there were 191 holders of record of the common stock.</div>

        <div style="text-align: justify;"> <br/>
        </div>

        <div style="font-weight: bold;">Issuer Purchases of Equity Securities</div>

        <div style="text-align: justify;">During the fourth quarter of 2024, we did not repurchase any shares of our common stock.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Dividend Policy</div>

        <div style="text-align: justify;">The Company does not currently pay cash dividends and does not intend to do so in the foreseeable future.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Sales of Unregistered Securities</div>

        <div style="text-align: justify;">None.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item6."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 6.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">[Reserved]</div>
                </td>

  </tr>


</table>
        </div>

        <div><br/>
        </div>

        <div>
          <a id="Item7."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 7.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">This discussion should be read in conjunction with the Consolidated Financial Statements and notes thereto.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-weight: bold;">Recent Developments</div>

        <div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt;">The Company&#8217;s previously announced strategic review process remains active. Management and the Company&#8217;s Board of Directors are focused on the process. The Company is
          determined to consider any and all options that increase and/or deliver stockholder value. The Company will provide further updates on this process when it determines that additional disclosure is appropriate or required. For information
          regarding the risks related to the strategic review process, please see Part I, Item 1A, Risk Factors under the sub-caption &#8220;Our success may depend in part on our ability to identify and pursue the best long-term strategy for our businesses.&#8221;</div>

        <div><br/>
        </div>

        <div style="color: #000000; font-weight: bold;">Current Trends</div>

        <div style="text-align: justify; color: #000000;">After strong demand during most of 2023 due in part to our primary competitor&#8217;s struggle to deliver products in the face of supply chain constraints, in late 2023, we began to see indications of a
          temporary slowdown in demand in the casino and gaming market, as customers that had built up excess inventory due to supply chain concerns advised us that they would temporarily reduce orders until their stock normalized. This slowdown impacted
          our results in the fourth quarter of 2023 and the first nine months of 2024. We currently believe all major customers, with the exception of one large international casino and gaming customer, were able to sell through their on-hand inventory and
          resumed&#160; ordering. Though we expect our overall casino and gaming sales to improve in 2025 compared to 2024, we expect such sales to be somewhat impacted in 2025&#160; until this customer has sold through its inventory on hand. Further, our primary
          competitor in the casino and gaming market has resumed supplying product at what we believe is their full capacity. The return of this competitor has resulted in some downward pricing pressure in certain geographies of that market which may
          continue and may negatively impact our worldwide casino and gaming sales. In addition, during 2022 and 2023, we experienced cost increases as a result of supply chain constraints, most of which we have been able to offset by increasing prices of
          our products. However, pricing pressure has subsequently caused us to lower prices again and there can be no guarantee that we will be able to increase prices sufficiently to offset any future similar cost increases, which generally cannot be
          predicted, and we may be further impacted by supply chain disruptions, inflation and other global economic conditions that may affect the markets we serve and from which we source our supplies and parts.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;">In February and March 2025, the U.S. presidential administration began implementing certain orders imposing new tariffs on foreign imports impacting multiple commodities and industries and multiple
          countries, including Canada and Mexico. In addition, the Canadian and Mexican governments have indicated they may retaliate with tariffs on U.S. goods. While at this time we do not expect any potential tariffs imposed by Canada and Mexico to have
          a material impact on our business, we are currently monitoring the ongoing trade dispute among the United States, Canada and Mexico and any future potential impact of these tariffs, and any additional tariffs that may be imposed or retaliatory
          actions that may be taken, and their impact to our business and financial condition.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;">For additional discussion of our business, refer to Part I, Item 1. Business, of this Form 10-K.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Critical Accounting Estimates</div>

        <div style="text-align: justify;">The preparation of financial statements in conformity with generally accepted accounting principles in the United States of America (&#8220;GAAP&#8221;) requires management to make use of estimates, judgments and assumptions
          that affect both Balance Sheet items and Statement of Operations categories.&#160; Such estimates and judgments are based upon historical experience and certain assumptions that are believed to be reasonable in the particular circumstances; however,
          due to the inherent uncertainties in developing estimates, actual results could differ from the original estimates, requiring adjustments to these balances in future periods.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;">We base our estimates on historical experience, forecasts and on various other assumptions that are believed to be reasonable under the circumstances; however actual results may differ from those
          estimates under different assumptions or conditions. The methods, estimates and judgments we use in applying our accounting policies have a significant impact on the results we report in our financial statements. Some of our accounting policies
          require us to make difficult and subjective judgments, often as a result of the need to make estimates of matters that are inherently uncertain.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">23</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div>
          <div style="text-align: justify;">The following accounting policies are those that we believe to be most critical in the preparation of our financial statements.&#160; These items utilize assumptions and estimates about the effect of future events
            that are inherently uncertain and are therefore based on our judgment.&#160; Refer to Note 2 &#8211; Summary of significant accounting policies in the accompanying Consolidated Financial Statements for a complete listing of our significant accounting
            policies.&#160; <span style="color: #000000;">We also have other policies that we consider key accounting policies; however, these policies typically do not require us to make estimates or judgments that are difficult or subjective.</span></div>

        </div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Revenue Recognition</span> &#8211; <span style="color: #000000;">Our net sales are derived from the sale of products and services and are adjusted for estimated
            returns and allowances, which historically have been insignificant. The a</span>pplication of GAAP to the measurement and recognition of revenue requires us to make judgments and estimates. Specifically, the determination of whether revenues
          related to our revenue contracts should be recognized over time or at a point in time.&#160; <span style="color: #000000;">We recognize revenue when the obligations under the terms of a contract with our customers are satisfied; generally, this
            occurs with the transfer of control of our printers, terminals, consumables and replacement parts.&#160; For our warranty, software applications and maintenance agreements, revenue is generally recognized ratably over the contract period. </span>Other












          significant judgments include contracts that contain multiple performance obligations (most commonly when contracts include a hardware product, software, financing and extended warranties) which require a contract&#8217;s transaction price to be
          allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied.&#160; <span style="color: #000000;">For arrangements containing multiple performance obligations, the revenue relating
            to the undelivered performance obligation is deferred using the relative standalone selling price method utilizing estimated sales prices until satisfaction of the deferred performance obligation.&#160; </span>Both of these determinations impact
          the timing and amount of our reported revenues and net income and loss.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Accounts Receivable</span> &#8211; We have standardized credit granting and review policies and procedures for all customer accounts, including: credit reviews of all
          new customer accounts; ongoing credit evaluations of current customers; credit limits and payment terms based on available credit information; and adjustments to credit limits based upon payment history and the customer&#8217;s current
          creditworthiness.&#160; We also provide an estimate for expected credit losses based on <span style="color: #000000;">an expected loss methodology which considers a broad range of information to estimate expected credit losses, including historical
            information, current economic conditions and a reasonable forecast period</span>.&#160; Our reserve for expected credit losses as of December 31, 2024 was $0.5 million, or 7.0% of outstanding trade accounts receivable, which we believe is
          appropriate considering the overall quality of our accounts receivable.&#160; Although credit losses have historically been within expectations and the reserves established, there is no assurance that our credit loss experience will continue to be
          consistent with historical experience.&#160; <span style="color: #000000;">While we believe that our allowance for credit losses is adequate and represents our best estimate of future losses, we will continue to monitor customer liquidity and other
            economic conditions, which may result in changes to our estimates.</span></div>

        <div><br/>
        </div>

        <div>
          <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Inventories </span>&#8211; <span style="color: #000000;">The valuation of inventory requires us to estimate obsolete or excess inventory as well as inventory that
              is not of saleable quality. The determination of obsolete or excess inventory requires us to estimate the future demand for our products. We record valuation reserves on our inventory for estimated excess and obsolete inventory and lower of
              cost or net realizable value concerns equal to the difference between the cost of inventory and the estimated realizable value based upon assumptions about future product demand, market conditions and product selling prices. If future product
              demand, market conditions or product selling prices are less than those projected by management or if continued modifications to products are required to meet specifications or other customer requirements, increases to inventory reserves may
              be required which would have a negative impact on our gross margin.</span></div>

        </div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Goodwill and Intangible Assets</span> &#8211; <span style="color: #000000;">We evaluate goodwill and other indefinite-lived intangible assets for impairment annually
            and when an event occurs or circumstances change that indicate that the carrying value may not be recoverable.&#160; </span>The Company utilizes the option to first assess qualitative factors to determine whether it is necessary to perform the Step
          1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant events and circumstances including, but not limited to, macroeconomic conditions,
          industry and market considerations, Company performance, and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test is required, management estimates the fair value of the reporting unit
          primarily using the income approach.&#160; <span style="color: #000000;">Under the income approach, we use a discounted cash flow methodology to derive an indication of value, which requires management to make significant estimates and assumptions
            related to forecasted revenues, gross profit margins, operating income margins, working capital cash flow, perpetual growth rates, and long-term discount rates, among others.&#160; </span>Factors considered that may trigger an interim period
          impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired assets or the
          strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment when
          appropriate.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">As of December 31, 2024, upon the completion of our annual assessment for impairment, we have determined that no goodwill or intangible asset impairment has occurred and the fair value of the Company was
          substantially higher than our carrying value.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We have evaluated the recoverability of the assets on our Consolidated Balance Sheet as of December 31, 2024 in accordance with relevant authoritative accounting literature. We have considered the effects caused by
          the global supply chain disruptions, inflation and macroeconomic factors potentially impacting accounts receivable, inventory, investments, intangible assets, goodwill and other assets and liabilities.&#160; Where forward-looking estimates are
          required, we made a good-faith estimate based on information available as of the balance sheet date. We have continued to monitor for indicators of impairment through the date of this Form 10-K and reflected accordingly in the accompanying
          consolidated financial statements.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">24</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Income Taxes</span> &#8211; We account for income taxes in accordance with ASC 740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;).&#160; In preparing our Consolidated Financial Statements, we
          are required to estimate income taxes in each of the jurisdictions in which we operate.&#160; Among other things, this provision prescribes a minimum recognition threshold that an income tax position must meet before it is recorded in the reporting
          entity&#8217;s financial statements. It also requires that the effects of such income tax positions be recognized only if, as of the balance sheet reporting date, it is &#8220;more likely than not&#8221; (i.e., more than a 50% likelihood) that the income tax
          position will be sustained based solely on its technical merits.&#160; When making this assessment, management must assume that the responsible taxing authority will examine the income tax position and have full knowledge of all relevant facts and
          other pertinent information.&#160; The accounting guidance also clarifies the method of accruing for interest and penalties when there is a difference between the amount claimed, or expected to be claimed, on a company&#8217;s income tax returns and the
          benefits recognized in the financial statements.&#160; This involves estimating the actual current tax exposure together with assessing temporary differences between the tax basis of certain assets and liabilities and their reported amounts in the
          financial statements, as well as net operating losses, tax credits and other carryforwards.&#160; These differences result in deferred tax assets and liabilities, which are reflected in our Consolidated Balance Sheets.&#160; We then assess the likelihood
          that the deferred tax assets will be realized from future taxable income.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;">Valuation allowances are recorded to reduce deferred tax assets when it is more likely than not (greater than 50%) that a tax benefit will not be realized.&#160; In evaluating the need for a valuation
          allowance, management considers all potential sources of taxable income, including income available in carryback periods, future reversals of taxable temporary differences, projections of taxable income, and income from tax planning strategies,
          as well as all available positive and negative evidence.&#160; Positive evidence includes factors such as a history of profitable operations and, projections of future profitability within the carryforward period, including any potential tax planning
          strategies.&#160; Negative evidence includes items such as cumulative losses and projections of future losses.&#160; Upon changes in facts and circumstances, management may conclude that deferred tax assets for which no valuation allowance is currently
          recorded may not be realized, resulting in a charge to establish a valuation allowance.&#160; Existing valuation allowances are re-examined under the same standards of positive and negative evidence. If it is determined that it is more likely than not
          that a deferred tax asset will be realized, the appropriate amount of the valuation allowance, if any, is released.&#160; Deferred tax assets and liabilities are also re-measured to reflect changes in underlying tax rates due to law changes and the
          granting and lapse of tax holidays.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;">In 2024, TransAct recognized a $7.3 million discrete income tax charge for a valuation allowance on the full value of the net deferred tax assets in the United States.&#160; After weighing all available
          positive and negative evidence, as described above, management determined that it was no longer more likely than not that TransAct will realize the tax benefit of these deferred tax assets. This was mainly driven by a cumulative taxable loss over
          the previous three fiscal years (2022 through 2024) combined with a near term outlook of future taxable losses.&#160; The need for this valuation allowance will be assessed on a quarterly basis in future periods and, as a result, a portion, or all of
          the allowance, may be reversed based on changes in facts and circumstances.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Significant judgment is required in determining the provision for income taxes and, in particular, any valuation allowance or tax reserves with respect to our deferred tax assets and uncertain tax positions.&#160; On a
          quarterly basis, we evaluate the recoverability of our deferred tax assets based upon historical results and forecasted taxable income over future years, and match this forecast against the basis differences, deductions available in future years
          and the limitations allowed for net operating loss and tax credit carryforwards to ensure that there is adequate support for the realization of the deferred tax assets. Although we have considered future taxable income and ongoing prudent and
          feasible tax planning strategies in assessing the need for a valuation allowance, in the event we were to determine that we would not be able to realize all or part of our deferred tax assets in the future, an adjustment to the valuation
          allowance or tax reserves would be charged as a reduction to income in the period such determination was made.&#160; Likewise, should we determine that we would be able to realize future deferred tax assets in excess of its net recorded amount, an
          adjustment to the valuation allowance would increase net income in the period such determination was made.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Share-Based Compensation</span> &#8211; We calculate share-based compensation expense in accordance with ASC 718, &#8220;Compensation &#8211; Stock Compensation&#8221; using the
          Black-Scholes option-pricing model to calculate the fair value of share-based awards.&#160; The key assumptions for this valuation method include the expected term of an option grant, stock price volatility, risk-free interest rate, and dividend
          yield.&#160; We account for forfeitures as they occur.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">25</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-weight: bold;">Results of Operations: Year Ended December 31, 2024 Compared to Year Ended December 31, 2023</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic;">Net Sales.</span>&#160; Net sales, which include printer, terminal and software sales as well as sales of replacement parts, consumables and maintenance and repair
          services, by market for the years ended December 31, 2024 and 2023 are detailed in the below table.</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
                <div style="text-align: justify;">(In thousands, except percentages)</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center;">December 31, 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center;">December 31, 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center;">$ Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center;">% Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">
                <div>
                  <div style="text-align: justify;">Food service technology</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>16,101</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">37.1</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">16,308</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">22.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(207</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(1.3</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%;">
                <div>
                  <div style="text-align: justify;">POS automation</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
                <div>
                  <div style="color: #000000;">3,361</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
                <div>
                  <div style="color: #000000;">7.8</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
                <div>
                  <div style="color: #000000;">6,922</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
                <div>
                  <div style="color: #000000;">9.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
                <div>
                  <div style="color: #000000;">(3,561</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
                <div>
                  <div style="color: #000000;">(51.4</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">
                <div>
                  <div style="text-align: justify;">Casino and gaming</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">20,348</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">46.9</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">41,192</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">56.7</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(20,844</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(50.6</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;">
                <div>
                  <div>TSG</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">3,574</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">8.2</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">8,209</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">11.3</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">(4,635</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">(56.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">43,384</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">72,631</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>(29,247</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div>)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(40.3</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">
                <div>
                  <div style="text-align: justify;">International*</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>9,899</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>22.8</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div>%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>14,571</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>20.1</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div>%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>(4,672</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div>)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div>(32.1</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div>%)</div>
                </div>
              </td>

  </tr>


</table>
        <div> <br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top;">*</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>International sales do not include sales of products to domestic distributors or other customers who in turn ship those products to international destinations.</div>
              </td>

  </tr>


</table>
        <div> <br/>
        </div>

        <div style="text-align: justify;">Net sales for 2024 decreased $29.2 million, or 40%, from 2023.&#160; Printer, terminal and other hardware sales volume decreased by 47% to approximately 79,000 units for 2024, driven by large unit volume decreases
          across all markets, including a 50% decrease in unit volume from the casino and gaming market, a 42% decrease in unit volume in the POS automation market and a 20% hardware unit volume decrease in our FST market. For more information about the
          sales volume changes described above, please refer to the results of operations for each of our markets discussed further below.&#160; The average selling price of our printers, terminals and other hardware increased approximately 1% during 2024
          compared to 2023 due to general inflationary pressures.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">International sales for 2024 decreased $4.7 million, or 32%, compared to 2023 predominantly due to lower sales in our casino and gaming market.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-style: italic;">Food service technology (&#8220;FST&#8221;)</span>.&#160;Our primary offering in the food service technology market is our line of BOHA! products, the BOHA! product suite combines our latest
          generation terminal or workstation, which include one or two printers, with our BOHA! labeling, timers, and media software.&#160; In addition, customers may individually purchase cloud-based software applications that connect to an application on a
          separate mobile device into a solution to automate back-of-house operations in restaurants, convenience stores and food service operations. The additional software offering of BOHA! consists of a variety of individually purchased
          software-as-a-service (&#8220;SaaS&#8221;)-based applications for both Android and iOS operating systems, including applications for temperature monitoring, temperature taking and checklists and task lists. These applications are sold separately, and
          customers purchase the applications they need for their back-of-house operations. Customers may also purchase associated hardware, such as tablets, temperature sensors and gateways. The BOHA! Terminal and the more recently launched Terminal 2
          combine<span style="color: #FF0000;">&#160;</span>an operating system and hardware components in a single touchscreen device with one or two thermal print mechanisms that print easy-to-read food rotation labels, grab-and-go labels, and nutritional
          labels for prepared foods, and &#8220;enjoy by&#8221; date labels. The BOHA! WorkStation uses an iPad or Android tablet instead of an integrated touchscreen. The BOHA! Terminal, Terminal 2 and WorkStation are equipped with the TransAct Enterprise Management
          System to ensure that only approved touchscreen functions are available on the device and to allow over-the-air updates to the operating system. BOHA! helps food service establishments and restaurants (including fine dining, casual dining, fast
          casual and quick-service restaurants, convenience stores, hospitality establishments and contract food service providers) effectively manage food safety and grab-and-go initiatives, as well as automate and manage back-of-house operations.
          Recurring revenue from BOHA! is generated by software sales, including software subscriptions that are typically charged to customers annually on a per-application basis, as well as sales of labels, extended warranty and service contracts, and
          technical support services. Sales of our worldwide food service technology products for the years ended December 31, 2024 and 2023 were as follows:</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
                <div style="text-align: justify; color: #000000; font-style: italic;">(In thousands, except percentages)</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">$ Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">% Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">
                <div style="text-align: justify; color: #000000;">Domestic</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">14,719</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">91.4</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">15,159</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">93.0</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">(440</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">)</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">(2.9</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%)</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;">
                <div style="text-align: justify; color: #000000;">International</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">1,382</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">8.6</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">1,149</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">7.0</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">233</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;" colspan="1">
                <div style="color: #000000;">20.3</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">16,101</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">100.0</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">16,308</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">100.0</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">(207</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">)</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">(1.3</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%)</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
                <div style="text-align: justify; color: #000000; font-style: italic;">(In thousands, except percentages)</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">$ Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">% Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">
                <div style="text-align: justify; color: #000000;">Hardware</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">5,319</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">33.0</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">5,170</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">31.7</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">149</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">2.9</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;">
                <div style="text-align: justify; color: #000000;">Software, labels and other recurring revenue</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">10,782</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">67.0</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">11,138</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">68.3</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div style="color: #000000;">(356</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">)</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;" colspan="1">
                <div style="color: #000000;">(3.2</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%)</div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">16,101</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">100.0</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">16,308</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">100.0</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">$</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">(207</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">)</div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">
                <div style="color: #000000;">(1.3</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div style="color: #000000;">%)</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">26</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;">Sales in food service technology decreased 1% in 2024 compared to 2023 driven by a 3% decrease in sales of BOHA! software, labels and other recurring revenue, partially offset by a 3% increase in hardware sales.
          Despite the loss of a significant customer (as further explained below) FST software, labels and recurring revenue experienced only a slight decline of 3% due to the growth of the installed base of BOHA! Terminal 2.&#160; Hardware sales increased
          largely due to increased sales of our BOHA! Terminal 2.&#160; Hardware sales were also impacted by a 94% decrease in sales of our AccuDate 9700 terminals which we discontinued at the end of 2023 and 77% lower sales of our legacy BOHA! Terminal
          (including those of the lost customer explained further below).&#160; These decreases were more than offset by strong sales of our BOHA! Terminal 2 (that replaced the original BOHA! Terminal) to a large international QSR customer as well as increased
          sales of Workstations.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">During the second quarter of 2024, a significant customer notified us that it would be terminating service, including its BOHA! software subscriptions and label sales, for its existing installed base of BOHA!
          Terminals by the middle of July 2024. Total sales to this customer (including hardware, software, labels and other recurring revenue) were approximately $4.0 million in 2023 and $0.9 million in 2024.&#160; We did not have any hardware sales, and
          minimal label and software sales, to this customer in the third and fourth quarters of 2024, but we expect to continue to service a small percentage of ongoing units and may have some additional sales to this customer in the future.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We expect FST revenue to be higher in 2025 than in 2024 as we continue to focus on growing our installed base of terminals and the related recurring revenue (primarily the sale of labels and subscription software
          revenue from our labeling software application).</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-style: italic;">POS automation</span>. Revenue from the POS automation market includes sales of our Ithaca 9000 thermal printer used primarily by McDonald&#8217;s, and to a much lesser extent, other
          quick-service restaurants located either at the checkout counter or within self-service kiosks to print receipts for consumers or print liner-less labels.&#160; Sales of our worldwide POS automation products for the years ended December 31, 2024 and
          2023 were as follows:</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
                <div style="text-align: justify; color: #000000; font-style: italic;">(In thousands, except percentages)</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">$ Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">% Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">
                <div>
                  <div style="text-align: justify; color: #000000;">Domestic</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">3,361</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">6,805</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">98.3</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(3,444</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(50.6</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;">
                <div>
                  <div style="text-align: justify; color: #000000;">International</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">--</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">--</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">117</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">1.7</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">(117</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">(100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">3,361</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">6,922</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(3,561</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(51.4</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">The decrease in POS automation revenue in 2024 compared to 2023 was driven by a 51% decrease in domestic sales largely due to unusually high sales during 2023, as we increased production and began to fulfill our
          large backlog of sales orders following supply chain slowdowns in 2022.&#160; During 2024, we experienced renewed competitive pressure that has resulted in a return to a more normalized level of sales as well as a reduction in our average selling
          prices</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We expect POS automation sales to be lower in 2025 compared to 2024 as we expect to continue to face competitive pressure in this market.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-style: italic;">Casino and gaming</span>. Revenue from the casino and gaming market includes sales of thermal printers used in slot machines, video lottery terminals, and other gaming machines
          that print tickets or receipts instead of issuing coins at casinos, racetracks and other gaming venues worldwide. Revenue from this market also includes sales of thermal roll-fed printers used in the international off-premise gaming market in
          gaming machines such as Amusement with Prizes, Skills with Prizes and Fixed Odds Betting Terminals and kiosks for sports betting at non-casino gaming and sports betting establishments.&#160; Revenue from this market also includes royalties related to
          our patented casino and gaming technology. In addition, casino and gaming market revenue includes sales of the EPICENTRAL print system, our software solution (including annual software maintenance), that enables casino operators to create
          promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; Sales of our worldwide casino and gaming products for the years ended December 31, 2024 and 2023 were as follows:</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
                <div style="text-align: justify; color: #000000; font-style: italic;">(In thousands, except percentages)</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">$ Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">% Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">
                <div>
                  <div style="text-align: justify; color: #000000;">Domestic</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">12,522</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">61.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">28,715</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">69.7</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(16,193</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(56.4</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;">
                <div>
                  <div style="text-align: justify; color: #000000;">International</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">7,826</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">38.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">12,477</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">30.3</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">(4,651</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">(37.3</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">20,348</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">41,192</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(20,844</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(50.6</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">The 56% decrease in domestic sales of our casino and gaming products during 2024 compared to 2023 was primarily due to a 50% decrease in sales unit volume. Sales during 2023 were unusually high due to our largest
          competitor&#8217;s inability to supply product to customers as a result of supply chain issues.&#160; In addition, entering 2024, many of our customers had accumulated higher-than-normal levels of inventory of our product as a hedge during the worldwide
          supply chain crisis during 2022 and 2023. As a result, during 2024, we experienced a significant slowdown in their order and shipment rates as they worked through this excess inventory.&#160; In addition, we believe our sales in the second half of
          2024 were impacted by softness in overall demand in the industry.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">27</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify;">International sales of our casino and gaming products decreased 37% during 2024 compared to 2023.&#160; Similar to our domestic customers, our international customers also began to slow their order rates in late 2023
          and continuing through 2024 due to higher-than-normal inventory levels and in response to softness in overall demand in the industry.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">As of the end of 2024, we believe all our major casino and gaming customers have worked through the majority of their on-hand inventory and have begun to order again, with the exception of one large international
          customer.&#160; In addition, we expect the demand softness we experienced in the worldwide casino and gaming market in late 2024 to begin to improve in 2025.&#160; As a result, we expect our casino and gaming sales to be higher in 2025 compared to 2024.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-style: italic;">TSG:</span> Revenue generated by TSG includes sales of consumable products (POS receipt paper and ribbons for non-FST legacy products), replacement parts and accessories,
          maintenance and repair services and shipping and handling charges.&#160; Sales in our worldwide TSG market for the years ended December 31, 2024 and 2023 were as follows:</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="6">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
                <div style="text-align: justify; color: #000000; font-style: italic;">(In thousands, except percentages)</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
                <div style="text-align: center; color: #000000;">December 31, 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">$ Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
                <div style="text-align: center; color: #000000;">% Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">
                <div>
                  <div style="text-align: justify; color: #000000;">Domestic</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">2,883</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">80.7</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">7,381</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">89.9</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(4,498</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(60.9</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;">
                <div>
                  <div style="text-align: justify; color: #000000;">International</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">691</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">19.3</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">828</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">10.1</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">(137</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">(16.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">3,574</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">8,209</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">100.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(4,635</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">(56.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">The large decrease in domestic revenue from TSG during 2024 as compared to 2023 resulted primarily from a 75% decrease in sales of replacement parts and accessories.&#160; During 2023, we experienced unusually high
          sales of approximately $4.1 million from the final purchases of spare parts for our legacy lottery printer that did not repeat in 2024.&#160; We do not expect any future sales of these spare parts. Also contributing to the decline was a 57% decrease
          in consumable sales as we are no longer focused on these legacy products (POS paper and ribbons)&#160; and expect to cease selling these products by the end of 2025.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Internationally, TSG revenue decreased 17% during 2024 compared to 2023, due primarily to a decline in sales of replacement parts and accessories to international casino and gaming customers.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We expect TSG sales to be somewhat lower in 2025 compared to 2024 as we expect to cease selling our legacy consumable products by the end of 2025.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;"><span style="font-weight: bold; font-style: italic;">Gross Profit.</span>&#160; Gross profit information for the years ended December 31, 2024 and 2023 is summarized below (in thousands, except
          percentages):</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="6">
                <div style="text-align: center; color: #000000;"> Year Ended December 31,</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales - 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales - 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">21,482</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">38,400</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">(44.1</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">49.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">52.9</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">Gross profit is measured as revenue less cost of sales, which includes primarily the cost of all raw materials and component parts, direct labor, manufacturing overhead expenses, cost of finished products purchased
          directly from our contract manufacturers, expenses associated with installations and support of our EPICENTRAL print system and our line of BOHA! products and royalty payments to third-parties, including to the third party licensor of our food
          service technology software products.&#160; Gross profit decreased $16.9 million, or 44%.&#160; Gross margin also decreased 340 basis points to 49.5% in 2024 compared to 52.9% in 2023. Both gross profit and gross margin declined primarily due to a 40%
          decline in overall sales including a 51% decline in sales of higher margin casino and gaming printers.&#160; Gross margin for 2024 was also impacted by competitive price adjustments.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We expect gross margin for 2025 to be in the mid 40% to high 40% range.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;"><span style="font-weight: bold; font-style: italic;">Operating Expenses - Engineering, Design and Product Development.</span>&#160; Engineering, design and product development information for the years
          ended December 31, 2024 and 2023 is summarized below (in thousands, except percentages):</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended December 31,</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales - 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales - 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">6,977</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">9,442</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">(26.1</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">16.1</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">13.0</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

  </tr>


</table>
        <div><span style="color: #000000;"> </span><br/>
        </div>

        <div style="text-align: justify;">Engineering, design and product development expenses primarily include salary and payroll-related expenses for our hardware and software engineering staff, depreciation and design expenses (including prototype
          printer expenses, outside design, development and testing services, supplies and contracted software development expenses including those to the third party licensor of our food service technology software products).&#160; Engineering, design and
          product development expenses decreased $2.5 million, or 26%, in 2024 compared to 2023 due to cost reduction initiatives taken during the latter part of 2023, and in the second quarter of 2024, including a reduction of contracted software
          development expenses.<span style="color: #000000;">&#160;</span>We expect engineering, design and product development expenses to be higher in 2025 compared to 2024 due to typical inflationary and cost of living increases in such expenses.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">28</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; color: #000000;"><span style="font-weight: bold; font-style: italic;">Operating Expenses - Selling and Marketing</span><span style="font-weight: bold;">.</span>&#160; Selling and marketing information for the years ended
          December 31, 2024 and 2023 is summarized below (in thousands, except percentages):</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended December 31,</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales - 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales - 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">8,195</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">9,934</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">(17.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">18.9</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">13.7</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">Selling and marketing expenses primarily include salaries and payroll-related expenses for our sales, marketing and customer success staff, sales commissions, travel expenses, expenses associated with the lease of
          sales offices, advertising, trade show expenses, public relations, e-commerce and other promotional marketing expenses.&#160; Selling and marketing expenses decreased $1.7 million, or 18%, during 2024 compared to 2023 primarily due to cost reduction
          initiatives, including reduced headcount, trade show and other marketing expenses.&#160; We expect selling and marketing expenses for 2025 to increase compared to 2024 due to typical inflationary and cost of living increases as well incremental costs
          we expect to incur related to programs to further improve and refine our go-to-market strategy.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;"><span style="font-weight: bold; font-style: italic;">Operating Expenses - General and Administrative.</span>&#160; General and administrative information for the years ended December 31, 2024 and 2023 is
          summarized below (in thousands, except percentages):</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended December 31,</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales - 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales - 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">9,936</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">13,318</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">(25.4</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">22.9</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">18.3</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">General and administrative expenses primarily include salaries, incentive compensation, and other payroll-related expenses for our Chief Executive Officer, Chief Financial Officer, accounting, human resources,
          corporate development and information technology staff, expenses for our corporate headquarters, professional and legal expenses, information technology expenses, and other expenses related to being a publicly traded company.&#160; General and
          administrative expenses decreased $3.4 million, or 25%, during 2024 compared to 2023 due in large part to a $1.5 million severance charge incurred in 2023 related to the resignation of the Company&#8217;s former Chief Executive Officer in April 2023,
          as well as expense reduction initiatives we commenced in the third quarter of 2023 and in the second quarter of 2024. We expect general and administrative expenses to increase in 2025 compared to 2024 due to typical inflationary and cost or
          living increases combined with higher expected incentive and share-based compensation expense (both largely performance-based).</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;"><span style="font-weight: bold; font-style: italic;">Operating (Loss) Income.</span>&#160; Operating (loss) income information for the years ended December 31, 2024 and 2023 is summarized below (in
          thousands, except percentages):</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="6">
                <div style="text-align: center; color: #000000;">Year Ended December 31,</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
                <div style="text-align: center; color: #000000;">Percent of</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Change</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales &#8211; 2024</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
                <div style="text-align: center; color: #000000;">Total Sales &#8211; 2023</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">(3,626</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">)</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">5,706</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 18%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">(163.5</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 17%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">(8.4</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%)</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 15%; background-color: rgb(204, 238, 255);" colspan="1">
                <div>
                  <div style="color: #000000;">7.9</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
                <div>
                  <div style="color: #000000;">%</div>
                </div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify;">Our operating income decreased $9.3 million, or 164%, during 2024 compared to 2023 as a $16.9 million or 44% decrease in gross profit on 40% lower sales, was partially offset by a $7.6 million or 23% decrease in
          operating expenses (including the $1.5 million severance charge in 2023 discussed above in &#8220;General and Administrative&#8221;) in 2024 compared to 2023.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic; color: #000000;">Interest, net.</span><span style="color: #000000;">&#160; We recorded net interest income of $147 thousand in 2024 compared to net interest expense of
            $255 thousand in 2023. During 2023 and 2024, we incurred</span> interest expense related to minimum borrowings required pursuant to the Siena Credit Facility. Following the November 2024 amendment of the Siena Credit Facility, we were required
          to maintain outstanding borrowings of at least $3 million in principal amount, an increase from $2.25 million prior to the amendment.&#160; See Note 9 &#8211; Borrowings to the accompanying consolidated financial statements. In addition, during 2024 we
          earned more interest income than in 2023 due to higher levels of invested cash on hand.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;"><span style="font-weight: bold; font-style: italic;">Other, net</span><span style="font-weight: bold;">.</span>&#160; We recorded other expense of $89 thousand in 2024 compared to other income of $452
          thousand in 2023.&#160; The other expense for 2024 is related to higher foreign exchange losses recorded by our UK subsidiary during 2024. During the fourth quarter of 2023, we completed an asset sale of our Printrex product line (essentially
          inventory on-hand) and recorded a non-operating gain of approximately $426 thousand.&#160; Prior to this sale, the last TransAct sales of Printrex products occurred in 2021.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-weight: bold; font-style: italic; color: #000000;">Income Taxes</span><span style="font-weight: bold; color: #000000;">.</span><span style="color: #000000;">&#160; </span>We recorded income tax
          expense in 2024 of $6.3 million at an effective tax rate of (176.4%), compared to income tax expense in 2023 of $1.2 million at an effective tax rate of 19.6%.&#160; The effective tax rate for 2024 was unusually high due to an income tax charge of
          $7.3 million related to the write down of our U.S. net deferred income tax asset as more fully described below (See Note 11 &#8211; Income taxes in the Consolidated Financial Statements).</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;"><span style="font-weight: bold; font-style: italic;">Net (Loss) Income.</span>&#160; As a result of the above, we reported a net loss for the year ended December 31, 2024 of $9.9 million, or ($0.99) per
          diluted share, compared to net income of $4.7 million, or $0.47 per diluted share in 2023.</div>

        <div><span style="color: #000000;"> </span><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">29</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="font-weight: bold;">Liquidity and Capital Resources</div>

        <div style="text-align: justify;">We assess our liquidity in terms of our ability to generate cash to fund our operating, investing and financing activities.&#160; Significant factors affecting the management of liquidity are cash flows from operating
          activities, capital expenditures, access to bank lines of credit and our ability to attract long-term capital with satisfactory terms.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Internal cash generation together with currently available cash and cash equivalents, available borrowing facilities and an ability to access credit lines at market-competitive rates, if needed, are expected to be
          sufficient to fund operations, capital expenditures, and any increase in working capital that would be required to accommodate our anticipated level of business activity for the 2025 fiscal year and beyond.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">During the third quarter of 2023, we began a cost reduction initiative to reduce our overall level of operating expenses that included reducing employee headcount, trade show, advertising and other promotional
          marketing expenses, certain third-party engineering resources and other expenses, and to a lesser extent, certain general and administrative expenses. We estimated annual cost savings from these initiatives to be approximately $3.0 million and we
          realized the full savings from these actions in 2024.. We also began an additional cost reduction initiative in the second quarter of 2024 focused largely on further reducing employee headcount and other external third-party resources. Savings
          from this initiative were realized beginning in the third quarter of 2024 and are expected to be approximately $2.0 million on an annualized basis. Notwithstanding the foregoing, there is no assurance that the cost-cutting efforts we have taken
          to bring expenses in line with our revenue and mitigate the impact of global economic conditions such as supply chain disruptions and inflation are sufficient or adequate, and we may be required to take additional measures, as the ultimate extent
          of the effects of these risks on the Company, our financial condition, results of operations, liquidity, and cash flows are uncertain and are dependent on evolving developments which cannot be predicted at this time.&#160; See Part I, Item 1A, Risk
          Factors, of this Form 10-K for further discussion of risks related to global economic conditions, supply chain disruptions and inflation.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000; font-style: italic; font-weight: bold;">Cash Flow</div>

        <div style="text-align: justify;"><span style="color: #000000;">During 2024, our cash balance increased $2.1 million, or 16% (versus an increase of $4.4 million in 2023) due primarily to operating activities, including a reduction in accounts
            receivable of $3.3 million and a reduction of inventory of $1.6 million.&#160; Financing activities also provided a net increase in cash of $0.6 million due to the increase in bank borrowings required by Amendment No. 4 </span>to the Siena Loan and
          Credit Facility Agreement signed on November 20, 2024 (see further detail in &#8220;<span style="font-style: italic;">Credit Facility and Borrowings</span>&#8221; section below).<span style="font-weight: bold; font-style: italic;">&#160; </span><span style="color: #000000;">We had $14.4 million in cash and cash equivalents as of December 31, 2024, of which $168 thousand was held by our UK subsidiary.</span></div>

        <div>
          <div><span style="color: #000000;"> </span><br/>
          </div>

        </div>

        <div>
          <div style="text-align: justify; color: #000000;"><span style="font-style: italic;">Operating activities</span>: The following significant factors primarily affected our cash provided by operating activities of $1.8 million in 2024 as compared to
            cash provided by operating activities of $5.5 million in 2023.</div>

          <div><br/>
          </div>

          <div style="text-align: justify; color: #000000;">For 2024:</div>

          <div><br/>
          </div>

        </div>

        <div>
          <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
                </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                  <div style="color: #000000;">We reported a net loss of $9.9 million.</div>
                </td>

  </tr>


</table>
        </div>

        <div>
          <div>
            <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="width: 18pt;">&#160;</td>

    <td style="text-align: right; vertical-align: top; width: 18pt;">
                    <div style="text-align: justify;">&#8226;</div>
                  </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                    <div style="text-align: justify;"><span style="color: rgb(0, 0, 0);">We recorded depreciation and amortization of $1.0 million and share-based compensation expense of $1.2 million.</span></div>
                  </td>

  </tr>


</table>
          </div>

        </div>

        <div>
          <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
                </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                  <div><span style="color: #000000;">We recorded a decrease in our net deferred tax assets of $6.3 million due to </span>an income tax charge of $7.3 million related to the write down of our U.S. net deferred income tax asset</div>
                </td>

  </tr>


</table>
        </div>

        <div>
          <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
                </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                  <div style="color: #000000;">Accounts receivable decreased $3.3 million primarily due to lower sales volume in 2024.</div>
                </td>

  </tr>


</table>
          <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
                </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                  <div style="color: #000000;">Inventories decreased $1.6 million primarily due to lower sales volume in 2024.&#160; We expect inventories to continue to decline in 2025 due to an inventory reduction program we put into place in the latter part
                    of 2024.</div>
                </td>

  </tr>


</table>
        </div>

        <div>
          <div>
            <div>
              <div>
                <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="width: 18pt;">&#160;</td>

    <td style="text-align: right; vertical-align: top; width: 18pt;">
                        <div style="text-align: justify;">&#8226;</div>
                      </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                        <div style="text-align: justify;"><span style="color: rgb(0, 0, 0);">Accrued liabilities and other liabilities decreased $1.8 million due to lower employee bonus and payroll accruals in 2024 compared to 2023.</span></div>
                      </td>

  </tr>


</table>
              </div>

            </div>

          </div>

        </div>

        <div>
          <div><br/>
          </div>

        </div>

        <div>
          <div style="text-align: justify; color: #000000;">For 2023:</div>

          <div><br/>
          </div>

        </div>

        <div>
          <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
                </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                  <div style="color: #000000;">We reported net income of $4.7 million.</div>
                </td>

  </tr>


</table>
        </div>

        <div>
          <div>
            <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="width: 18pt;">&#160;</td>

    <td style="text-align: right; vertical-align: top; width: 18pt;">
                    <div style="text-align: justify;">&#8226;</div>
                  </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                    <div style="text-align: justify;"><span style="color: rgb(0, 0, 0);">We recorded depreciation and amortization of $1.5 million and share-based compensation expense of $0.9 million.</span></div>
                  </td>

  </tr>


</table>
          </div>

          <div>
            <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="width: 18pt;">&#160;</td>

    <td style="text-align: right; vertical-align: top; width: 18pt;">
                    <div style="text-align: justify;">&#8226;</div>
                  </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                    <div style="text-align: justify;"><span style="color: rgb(0, 0, 0);">We recorded a decrease in our deferred tax assets of $1.0 million due to our net income in 2023.</span></div>
                  </td>

  </tr>


</table>
          </div>

        </div>

        <div>
          <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
                </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                  <div style="color: #000000;">Accounts receivable decreased $4.2 million primarily due to decreased sales volume during the fourth quarter of 2023.</div>
                </td>

  </tr>


</table>
        </div>

        <div>
          <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
                </td>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                  <div style="color: #000000;">Inventories increased $5.7 million primarily due to strategic purchases, including initial stocking orders related to the launch of BOHA! Terminal 2 and Epic TR80 in the fourth quarter of 2023, and declining
                    sales during the four quarters in 2023.</div>
                </td>

  </tr>


</table>
        </div>

        <div>
          <div>
            <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="width: 18pt;">&#160;</td>

    <td style="text-align: right; vertical-align: top; width: 18pt;">
                    <div style="text-align: justify;">&#8226;</div>
                  </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                    <div style="text-align: justify;"><span style="color: rgb(0, 0, 0);">Accounts payable used $3.0 million in cash due to increased inventory purchases and the timing of cash disbursements.</span></div>
                  </td>

  </tr>


</table>
          </div>

        </div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-style: italic; color: #000000;">Investing activities</span><span style="color: #000000;">:&#160; </span>Our capital expenditures were $0.3 million and $0.9 million in 2024 and 2023, respectively.&#160;
          Expenditures for both years were related to new product tooling and computer and networking equipment.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;"><span style="font-style: italic;">Financing activities:</span>&#160; Financing activities provided $0.6 million of cash in 2024 due primarily to proceeds received from the increase in the required minimum borrowings on
          our Siena Credit Facility while the use of cash of $0.1 million in 2023 related to withholding taxes paid on stock issuances.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">30</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Resource Sufficiency</div>

        <div style="text-align: justify;">Over the past two years, we have been impacted by global supply chain issues, increased shipping costs, increased interest rates and inflationary pressures.&#160; After experiencing lingering effects of the COVID-19
          pandemic through 2022, our operating results and operating cash flow improved significantly during 2023 due largely to certain competitors&#8217; inability to supply products in both the POS automation and casino and gaming markets.&#160; In late 2023, we
          began to see indications of a temporary slowdown in demand in the casino and gaming market, as customers that had built up excess inventory due to supply chain concerns advised us that they would temporarily reduce orders until their stock
          normalized. This slowdown impacted our results in the fourth quarter of 2023 and during the year ended December 31, 2024. Given the continued uncertainty related to the impact of external factors on the food service and casino industries, we
          continue to monitor our cash generation, usage and preservation including the management of working capital to generate cash.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">We believe that our cash and cash equivalents on hand, our expected cash flows generated from operating activities, and borrowings available under our Siena Credit Facility will provide sufficient resources to meet
          our working capital needs, finance our capital expenditures and meet our liquidity requirements through at least the next twelve months.&#160; Notwithstanding this belief, the ultimate impact of current global economic pressures and uncertainty
          relating to tariffs, inflationary pressures and market instability is unknown.</div>

        <div><br/>
        </div>

        <div style="font-style: italic; font-weight: bold;">Credit Facility and Borrowings</div>

        <div style="text-align: justify;">On March 13, 2020, we entered into the Loan and Security Agreement (the &#8220;Loan Agreement&#8221;) governing a credit facility (the &#8220;Siena Credit Facility&#8221;) with Siena Lending Group LLC (the &#8220;Lender&#8221;).&#160; The Siena Credit
          Facility provides for a revolving credit line of up to $10.0 million and was originally scheduled to expire on March 13, 2023, prior to being extended, as discussed below. Borrowings under the Siena Credit Facility bear a floating rate of
          interest equal to the greatest of (i) the prime rate plus 1.75%, (ii) the federal funds rate plus 2.25%, and (iii) 6.50%. We also pay a fee of 0.50% on unused borrowings under the Siena Credit Facility. Borrowings under the Siena Credit Facility
          are secured by a lien on substantially all the assets of the Company. Borrowings under the Siena Credit Facility are subject to a borrowing base based on 85% of eligible accounts receivable plus the lesser of (a) $5.0 million and (b) 50% of
          eligible raw material and 60% of finished goods inventory.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">The Siena Credit Facility imposes a financial covenant on the Company and restricts, among other things, our ability to incur additional indebtedness and create other liens. On July 21, 2021, the Company entered
          into an amendment (&#8220;Siena Credit Facility Amendment No. 1&#8221;) to the Loan Agreement. Siena Credit Facility Amendment No. 1 changed the financial covenant under the Siena Credit Facility from a minimum EBITDA covenant to an excess availability
          covenant requiring that the Company maintain excess availability of at least $750 thousand under the Siena Credit Facility, tested as of the end of each calendar month, beginning with the calendar month ended July 31, 2021. From July 31, 2021
          through December 31, 2024, we remained in compliance with our excess availability covenant.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">On July 19, 2022, the Company and the Lender entered into Amendment No. 2 (&#8220;Siena Credit Facility Amendment No. 2&#8221;) to the Loan Agreement as amended by Siena Credit Facility Amendment No. 1. Also on July 19, 2022,
          the Company and the Lender entered into an Amended and Restated Fee Letter (the &#8220;Amended Fee Letter&#8221;) in connection with Siena Credit Facility Amendment No. 2. Siena Credit Facility Amendment No. 2 did not modify the aggregate amount of the
          revolving commitment or the interest rate applicable to the loans. Among other changes, Siena Credit Facility Amendment No. 2 extended the maturity date from March 13, 2023 to March 13, 2025. In addition, the Amended Fee Letter required the
          Company to maintain outstanding borrowings of at least $2.25 million in principal amount or, during any period during which the Lender had control of the Company&#8217;s deposit account in accordance with the Loan Agreement, as amended by Siena Credit
          Facility Amendment No. 2, to pay interest on at least $2,250,000 in principal amount of outstanding borrowings, whether or not such amount of loans was actually outstanding.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">On May 1, 2023, the Company and the Lender agreed to a letter amendment (Amendment No. 3) to the Loan Agreement. Prior to such amendment, Section 7.1(m) of the Loan Agreement required that any successor to the
          Company&#8217;s former Chief Executive Officer be reasonably acceptable to the Lender. This amendment confirmed that Mr. John Dillon, the Company&#8217;s current Chief Executive Officer, is an acceptable successor, and applied the same requirement to any
          future successor to Mr. Dillon as Chief Executive Officer.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">On November 30, 2024, the Company and the Lender entered into Amendment No. 4 (&#8220;Siena Credit Facility Amendment No. 4&#8221;) to the Loan Agreement.&#160; The changes to the Loan Agreement provided for in Siena Credit
          Facility Amendment No. 4 include, among other things, the extension of the maturity date from March 13, 2025 to March 31, 2027. Also on November 20, 2024, the Company and the Lender entered into a Second Amended and Restated Fee Letter (the
          &#8220;Second Amended Fee Letter&#8221;) in connection with Siena Credit Facility Amendment No. 4.&#160; The Second Amended Fee Letter increases the minimum borrowing amount from $2.25 million to $3.0 million, such that the Company is required to either maintain
          outstanding borrowings of at least $3,000,000 in principal amount, or during any period during which the Lender has control of the Company&#8217;s deposit account in accordance with the Loan Agreement, as amended through Siena Credit Facility Amendment
          No. 4, to pay interest on at least $3,000,000 principal amount of loans, whether or not such amount of loans is actually outstanding. The Second Amended Fee Letter also extends the dates before which a prepayment and termination of the Loan
          Agreement requires the Company to pay to the Lender an early payment/termination premium, providing for (i) a two percent premium for prepayment on or prior to March 31, 2025, (ii) a one percent premium for prepayment from April 1, 2025 through
          March 31, 2026, and no premium for prepayment thereafter.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">As of December 31, 2024, we had $3.0 million of outstanding borrowings under the Siena Credit Facility and $3.2 million of net borrowing capacity available under the Siena Credit Facility.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">As stated above, we continue to monitor our cash generation, usage and preservation including the management of working capital to generate cash and continue to evaluate alternative sources of funding as necessary.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">31</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: justify; font-style: italic; font-weight: bold;">Stock Repurchase Program</div>

        <div style="text-align: justify;">During 2024 and 2023, we did not repurchase any shares of our common stock.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Shareholders&#8217; Equity</div>

        <div style="text-align: justify;">Shareholders&#8217; equity decreased $8.8 million, or 22%, to $30.6 million at December 31, 2024 from $39.4 million at December 31, 2023.&#160; The decrease was primarily due to a net loss of $9.9 million in 2024, including a
          $7.3 million write down of the deferred income tax asset, partially offset by share-based compensation expense related to stock awards of $1.2 million (net of withholding taxes paid by relinquishment of shares) in 2024.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item7A."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 7A.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Quantitative and Qualitative Disclosures about Market Risk.</div>
                </td>

  </tr>


</table>
        </div>

        <div>TransAct is a smaller reporting company, as defined in Item 10(f)(1) of Regulation S-K, and is not required to provide information under this item.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item8."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: justify; font-weight: bold;">Item 8.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; font-weight: bold;">Financial Statements and Supplementary Data.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">The financial statements of the Company are annexed to this Form 10-K as pages F-4 through F-22.&#160; The &#8220;Report of Independent Registered Public Accounting Firm&#8221; is annexed to this Form 10-K as of page F-2.&#160; An index
          to such materials appears on page F-1.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item9."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: justify; font-weight: bold;">Item 9.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; font-weight: bold;">Changes in and Disagreements with Accountants on Accounting and Financial Disclosure.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">None.</div>

        <div><br/>
        </div>

        <div>
          <div>
            <div>
              <a id="Item9A."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                      <div style="text-align: justify; font-weight: bold;"><span style="font-weight: bold;">Item 9A.</span></div>
                    </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                      <div style="text-align: justify; font-weight: bold;">Controls and Procedures.</div>
                    </td>

  </tr>


</table>
            </div>

          </div>

        </div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Evaluation of Disclosure Controls and Procedures</div>

        <div style="text-align: justify;">Our management, with the participation of our Chief Executive Officer (&#8220;CEO&#8221;) and Chief Financial Officer (&#8220;CFO&#8221;), evaluated the effectiveness of our disclosure controls and procedures, as defined in Rule 13a-15
          under the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;) as of</div>

        <div style="text-align: justify;">December 31, 2024. Based on this evaluation of our disclosure controls and procedures as of December 31, 2024, our CEO and CFO concluded that, as of December 31, 2024, our disclosure controls and procedures were
          effective at the reasonable assurance level.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Our management, including our CEO and CFO, has concluded that our consolidated financial statements, included in this Form 10-K, fairly present, in all material respects, our financial condition, results of
          operations and cash flows for the periods presented in conformity with GAAP, and that they can be relied upon.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Management&#8217;s Annual Report on Internal Control Over Financial Reporting</div>

        <div style="text-align: justify;">Our management is responsible for establishing and maintaining adequate internal control over financial reporting, as defined in Rule 13a-15(f) under the Exchange Act, to provide reasonable assurance regarding the
          reliability of our financial reporting and the preparation of financial statements for external purposes in accordance with GAAP. Internal control over financial reporting includes those policies and procedures that (i) pertain to the maintenance
          of records that in reasonable detail accurately and fairly reflect the transactions and dispositions of the assets of the Company; (ii) provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial
          statements in accordance with GAAP, and that receipts and expenditures of the Company are being made only in accordance with authorizations of management and directors of the Company; and (iii) provide reasonable assurance regarding prevention or
          timely detection of unauthorized acquisition, use or disposition of the Company&#8217;s assets that could have a material effect on the financial statements.</div>

        <div><br/>
        </div>

        <div style="text-align: justify;">Our management assessed our internal control over financial reporting as of December 31, 2024. Our management based its assessment on criteria established in Internal Control&#8211;Integrated Framework issued by the
          Committee of Sponsoring Organizations of the Treadway Commission. In the opinion of management, TransAct maintained effective internal control over financial reporting as of December 31, 2024.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Changes in Internal Control over Financial Reporting</div>

        <div style="text-align: justify;">No change in our internal control over financial reporting (as defined in Rules 13a-15(f) and 15d-15(f) under the Exchange Act) occurred during the three months ended December 31, 2024 that has materially affected,
          or is reasonably likely to materially affect, our internal control over financial reporting.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item9B."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: justify; font-weight: bold;">Item 9B.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; font-weight: bold;">Other Information.</div>
                </td>

  </tr>


</table>
        </div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;">&#160;</td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(a)</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>None</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;">&#160;</td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(b)</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>During the fourth quarter of 2024, no director or officer of the Company <ix:nonNumeric name="ecd:NonRule10b51ArrAdoptedFlag" id="Fact_b49e77c167b94dd889cba3a89e35af8c" contextRef="c20241001to20241231" format="ixt:fixed-false"><ix:nonNumeric name="ecd:Rule10b51ArrAdoptedFlag" id="Fact_6c7bbce02c224622a7d65b7cf6f18070" contextRef="c20241001to20241231" format="ixt:fixed-false">adopted</ix:nonNumeric></ix:nonNumeric> or <ix:nonNumeric name="ecd:Rule10b51ArrTrmntdFlag" id="Fact_b28fbeb0e39e4614a1b679dd24f1fd5e" contextRef="c20241001to20241231" format="ixt:fixed-false"><ix:nonNumeric name="ecd:NonRule10b51ArrTrmntdFlag" id="Fact_58f750d653a046be9ba073c2d6f540df" contextRef="c20241001to20241231" format="ixt:fixed-false">terminated</ix:nonNumeric></ix:nonNumeric> a &#8220;Rule 10b5-1trading arrangement&#8221; or &#8220;non-Rule 10b5-1trading arrangement,&#8221; as each term is defined in Item 408(a) of
                  Regulation S-K.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div>
          <a id="Item9C."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: justify; font-weight: bold;">Item 9C.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; font-weight: bold;">Disclosure Regarding Foreign Jurisdictions that Prevent Inspection.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">Not applicable.</div>

        <div style="text-align: justify;"> <br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">32</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="font-weight: bold;">PART III</div>

        <div style="text-align: justify;"> <br/>
        </div>

        <div>
          <a id="Item10."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 10.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Directors, Executive Officers and Corporate Governance.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">Set forth in Part I, Item 1. Business of this Form 10-K, under the heading &#8220;Information about our Executive Officers,&#8221; is certain information regarding our executive officers, and information regarding our code of
          ethics is set forth below.&#160; The remaining information in response to this item is incorporated herein by reference to the disclosure, if any; that will be contained, as applicable, under the headings &#8220;Proposal 1: Election of Directors,&#8221;
          &#8220;Delinquent Section 16(a) Reports,&#8221; &#8220;Corporate Governance &#8211; Director Nomination Process,&#8221; &#8220;Corporate Governance &#8211; Committees of the Board&#8221; and &#8220;Executive Compensation &#8211; Insider Trading Policy&#8221; in our Proxy Statement for our 2025 Annual Meeting of
          Stockholders (the &#8220;Proxy Statement&#8221;), which will be filed within 120 days after the end of the year covered by this Form 10-K.</div>

        <div><br/>
        </div>

        <div style="text-align: justify; font-weight: bold;">Code of Ethics</div>

        <div style="text-align: justify;">We maintain a Standards of Business Conduct and Code of Ethics (&#8220;Standards of Business Conduct&#8221;) that includes our code of ethics that is applicable to all employees, including our Chief Executive Officer, Chief
          Financial Officer, Chief Accounting Officer and Controller.&#160; Our Standards of Business Conduct, which require continued observance of high ethical standards, such as honesty, integrity and compliance with the law in the conduct of our business,
          are available for public access on our website at https://transacttech.gcs-web.com/governance/documents-charters.&#160; Any person may request a copy of our Standards of Business Conduct free of charge by calling (203) 859-6800.&#160; We will disclose on
          our website at https://transacttech.gcs-web.com/governance/documents-charters any amendment to or waiver of a provision of the Standards of Business Conduct as may be required and within the time period specified under the applicable SEC and
          Nasdaq rules.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item11."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: justify; font-weight: bold;">Item 11.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; font-weight: bold;">Executive Compensation.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">The information in response to this item will be contained in the Proxy Statement under the headings &#8220;Executive Compensation,&#8221; &#8220;Summary Compensation Table,&#8221; &#8220;Outstanding Equity Awards at 2024 Fiscal Year-End,&#8221;
          &#8220;Potential Payments Upon Termination or Change in Control,&#8221; &#8220;Pay Versus Performance,&#8221; and &#8220;Director Compensation for Fiscal Year 2024&#8221; and is incorporated herein by reference.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item12."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: justify; font-weight: bold;">Item 12.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; font-weight: bold;">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">Set forth below is certain information regarding our equity compensation plans.&#160; The remaining information in response to this item will be contained in the Proxy Statement under the heading, &#8220;Security Ownership of
          Certain Beneficial Owners and Management,&#8221; and is incorporated herein by reference.</div>

        <div><br/>
        </div>

        <div style="color: #000000; font-weight: bold;">Equity Compensation Plan Information</div>

        <div style="text-align: justify; color: #000000;">Information regarding our equity compensation plans as of December 31, 2024 is as follows:</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 2px solid;">
                <div style="text-align: left; color: rgb(0, 0, 0);">Plan category</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
                <div style="text-align: center; color: #000000;">(a)</div>
                <div style="text-align: center; color: #000000;">Number of</div>
                <div style="text-align: center; color: #000000;">securities to be</div>
                <div style="text-align: center; color: #000000;">issued upon exercise</div>
                <div style="text-align: center; color: #000000;">of outstanding</div>
                <div style="text-align: center; color: #000000;">options, warrants</div>
                <div style="text-align: center; color: #000000;"> and rights</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
                <div style="text-align: center; color: #000000;">(b)</div>
                <div style="text-align: center; color: #000000;">Weighted-</div>
                <div style="text-align: center; color: #000000;">average</div>
                <div style="text-align: center; color: #000000;">exercise price</div>
                <div style="text-align: center; color: #000000;">of outstanding</div>
                <div style="text-align: center; color: #000000;">options, warrants</div>
                <div style="text-align: center; color: #000000;">and rights</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
                <div style="text-align: center; color: #000000;">(c)</div>
                <div style="text-align: center; color: #000000;">Number of securities</div>
                <div style="text-align: center; color: #000000;">remaining available for</div>
                <div style="text-align: center; color: #000000;">future issuance under</div>
                <div style="text-align: center; color: #000000;">equity compensation plans</div>
                <div style="text-align: center; color: #000000;">(excluding securities</div>
                <div style="text-align: center; color: #000000;">reflected in column (a)</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
                <div style="color: #000000;">Equity compensation plans approved by security holders:</div>
              </td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;">
                <div>
                  <div style="color: rgb(0, 0, 0); margin-left: 9pt;">2005 Equity Incentive Plan</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">&#8211;</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">&#8211;</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">&#8211;</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 2px;">
                <div>
                  <div style="color: rgb(0, 0, 0); margin-left: 9pt;">2014 Equity Incentive Plan</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">1,753,678</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">8.41</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
                <div>
                  <div style="color: #000000;">655,672</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;">
                <div>
                  <div style="color: #000000;">Total</div>
                </div>
              </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">1,753,678</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">$</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">8.41</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
                <div>
                  <div style="color: #000000;">655,672</div>
                </div>
              </td>

    <td valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;">In May 2014, our stockholders approved the adoption of the 2014 Equity Incentive Plan.&#160; In May 2020, our stockholders approved an amendment and restatement of the 2014 Equity Incentive Plan to
          increase the number of shares of common stock which may be subject to awards granted under the plan from 1,400,000 to 2,200,000 shares.&#160; In June 2023, our stockholders approved an amendment and restatement of the 2014 Equity Incentive Plan to
          increase the number of shares of common stock which may be subject to awards granted under the plan from 2,200,000 to its current level of 2,900,000 and to change the date of adoption of the 2014 Equity Incentive Plan to April 17, 2023 (thereby
          extending its expiration date to April 17, 2033).&#160; The Company also maintains the 2005 Equity Incentive Plan; however no new awards are be available for future issuance under this plan.&#160; Both plans generally provide for awards in the form of: (i)
          incentive stock options, (ii) non-qualified stock options, (iii) restricted stock, (iv) restricted stock units (which may include performance-based vesting), (v) stock appreciation rights or (vi) limited stock appreciation rights.&#160; The Company
          does not have any equity plans that have not been approved by its stockholders.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item13."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 13.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Certain Relationships and Related Transactions, and Director Independence.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">The information in response to this item will be contained in the Proxy Statement under the headings &#8220;Certain Relationships and Related Transactions&#8221; and &#8220;Corporate Governance-Board Leadership Structure and
          Independence&#8221; and is incorporated herein by reference.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item14."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 14.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Principal Accountant Fees and Services.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify;">The information in response to this item will be contained in the Proxy Statement under the headings, &#8220;Policy Regarding Pre-Approval of Services Provided by the Independent Registered Public Accounting Firm&#8221; and
          &#8220;Independent Registered Public Accounting Firm&#8217;s Services and Fees&#8221; and is incorporated herein by reference.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">33</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: center; font-weight: bold;">PART IV</div>

        <div style="text-align: justify;"> <br/>
        </div>

        <div>
          <a id="Item15."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: left; font-weight: bold;">Item 15.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="font-weight: bold;">Exhibits and Financial Statement Schedules.</div>
                </td>

  </tr>


</table>
        </div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;">&#160;</td>

    <td style="width: 18pt; vertical-align: top; font-weight: bold;">(a)</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">The following documents are filed as part of this Form 10-K:</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; font-weight: bold;">1.</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Financial Statements.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 98%; vertical-align: top;">
                <div>Report of Independent Registered Public Accounting Firm</div>
              </td>

  </tr>

  <tr>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 98%; vertical-align: top;">
                <div>Consolidated Balance Sheets as of December 31, 2024 and 2023</div>
              </td>

  </tr>

  <tr>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 98%; vertical-align: top;">
                <div>Consolidated Statements of Operations for the years ended December 31, 2024 and 2023</div>
              </td>

  </tr>

  <tr>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 98%; vertical-align: top;">
                <div>Consolidated Statements of Comprehensive (Loss) Income for the years ended December 31, 2024 and 2023</div>
              </td>

  </tr>

  <tr>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 98%; vertical-align: top;">
                <div>Consolidated Statements of Changes in Shareholders&#8217; Equity for the years ended December 31, 2024 and 2023</div>
              </td>

  </tr>

  <tr>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 98%; vertical-align: top;">
                <div>Consolidated Statements of Cash Flows for the years ended December 31, 2024 and 2023</div>
              </td>

  </tr>

  <tr>

    <td style="width: 2%; vertical-align: top;" colspan="1">&#160;</td>

    <td style="width: 98%; vertical-align: top;">
                <div>Notes to Consolidated Financial Statements</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; font-weight: bold;">2.</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Schedules.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div>All schedules are omitted because they are either inapplicable or not required, or because the information required therein is included in the Consolidated Financial Statements and Notes thereto.</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
              </td>

    <td style="width: 18pt; vertical-align: top; color: #000000; font-weight: bold;">3.</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Exhibits</div>
              </td>

  </tr>


</table>
        <div style="margin-left: 216pt; font-weight: bold;">Exhibit Index</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div><a href="https://www.sec.gov/Archives/edgar/data/1017303/000114036122030288/exhibit3-2.htm">3.1(a)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Certificate of Incorporation of TransAct Technologies Incorporated (conformed copy) (incorporated by reference to Exhibit 3.2 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No.
                  000-21121) filed with the SEC on August 18, 2022).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/0000914039-99-000055.txt">3.1(b)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify;"><span style="color: #000000;">Certificate of Designation, Series A Preferred Stock, filed with the Secretary of State of Delaware on December 2, 1997 (incorporated by reference to Exhibit C of the Form of
                    Amended and Restated Rights Agreement, dated as of February 16, 1999, between </span>TransAct Technologies Incorporated and American Stock Transfer &amp; Trust Company filed as Exhibit 4.1 to the Company&#8217;s Current Report on Form 8-K
                  (SEC File No. 000-21121) filed with the SEC on February 18, 1999.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000091403900000221/0000914039-00-000221.txt">3.1(c)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Certificate of Designation, Series B Preferred Stock, filed with the Secretary of State of Delaware on April 6, 2000 (incorporated by reference to Exhibit 3.1(c) of the Company&#8217;s Quarterly
                  Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on May 8, 2000).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000114036123014061/ex3_2.htm">3.2</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Amended and Restated By-Laws of TransAct Technologies Incorporated (incorporated by reference to Exhibit 3.2 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with
                  the SEC on March 28, 2023).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/0000950135-96-003298.txt">4.1</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Specimen Common Stock Certificate (incorporated by reference to Exhibit 4.1 of the Company&#8217;s Registration Statement on Form S-1/A (No. 333-06895) filed with the SEC on August 1, 1996).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000114036124013040/ef20015290_4-2.htm">4.2</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Description of Securities (incorporated by reference to Exhibit 4.2 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 13, 2024).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div><a href="https://www.sec.gov/Archives/edgar/data/1017303/000095012305006988/y09630exv99w1.txt">10.1(x)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">2005 Equity Incentive Plan (incorporated by reference to Exhibit 99.1 of the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on June 1, 2005).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730314000027/exhibit10-01.htm">10.2(x)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">TransAct Technologies Incorporated 2014 Equity Incentive Plan (incorporated by reference to Exhibit 10.1 of the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the
                  SEC on May 19, 2014).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730317000052/exhibit101.htm">10.3(x)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Amendment to 2014 Equity Incentive Plan approved by Shareholders on May 22, 2017 (incorporated by reference to Exhibit 10.1 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No.
                  000-21121) filed with the SEC on August 9, 2017).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730320000024/def14aproxy.htm">10.4<span style="color: #000000;">(x)</span></a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">TransAct Technologies Incorporated 2014 Equity Incentive Plan, as Amended and Restated in 2020 (incorporated by reference to Exhibit I to the Definitive Proxy Statement on Schedule 14A filed
                  with the Commission on April 23, 2020, File No. 000-21121).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465923005753/tat412231proxy.htm#T99046">10.5<span style="color: #000000;">(x)</span></a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">TransAct Technologies Incorporated 2014 Equity Incentive Plan, as Amended and Restated in 2023 (incorporated by reference to Exhibit I to the Definitive Proxy Statement on Schedule 14A filed
                  with the Commission on April 21, 2023, File No. 000-21121).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730316000100/exhibit102.htm">10.6<span style="color: #000000;">(x)</span></a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">2014 Equity Incentive Plan Time-based Restricted Stock Unit Agreement (incorporated by reference to Exhibit 10.2 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed
                  with the SEC on May 6, 2016).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730316000112/exhibit101.htm">10.7(x)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">2014 Equity Incentive Plan Performance-based Restricted Stock Unit Agreement (incorporated by reference to Exhibit 10.1 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No.
                  000-211121) filed with the SEC on August 8, 2016).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730314000027/exhibit10-02.htm">10.8(x)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">2014 Equity Incentive Plan Non-statutory Stock Option Agreement (incorporated by reference to Exhibit 10.2 of the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the
                  SEC on May 19, 2014).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/ix?doc=/Archives/edgar/data/0001017303/000114036123024738/form10q.htm"><span style="text-decoration: underline;">10.1</span><span style="text-decoration: underline;">0</span>(x)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Severance Agreement by and between TransAct Technologies Incorporated and Brent Richtsmeier, dated as of January 1, 2021 (incorporated by reference to Exhibit 10.4 to the Company&#8217;s Quarterly
                  Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on May 15, 2023).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="ef20039038_ex10-11.htm">10.11(x)*</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Severance Agreement by and between TransAct and Tracey S. Winslow, dated as of December 22, 2023.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="ef20039038_ex10-12.htm">10.12(x)*</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Severance Agreement by and between TransAct and William J. DeFrances, dated as of August 3, 2022.</div>
              </td>

  </tr>


</table>
        <div> <br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">34</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/">10.13(x)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Executive Employment Agreement by and between TransAct Technologies Incorporated and John M. Dillon, dated as of September 4, 2024 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s
                  Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on September 6, 2024).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/ix?doc=/Archives/edgar/data/0001017303/000121465924016184/o952448k.htm">10.14(x)</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Executive Employment Agreement by and between TransAct Technologies Incorporated and Steven A. DeMartino, dated as of September 4, 2024 (incorporated by reference to Exhibit 10.2 to the
                  Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on September 6, 2024).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000114036124013040/ef20015290_ex10-16.htm">10.15</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Lease Agreement between Bomax Properties, LLC and TransAct, dated July 18, 2001 (incorporated by reference to Exhibit 10.16 to the Company&#8217;s Annual Report on Form 10-K (SEC File No.
                  000-21121) filed with the SEC on March 13, 2024).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730312000026/exhibit1016.htm">10.16</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Amendment No. 1 to Lease Agreement between Bomax Properties, LLC and TransAct, dated May 8, 2012 (incorporated by reference to Exhibit 10.16 of the Company&#8217;s Quarterly Report on Form 10-Q
                  (SEC File No. 000-21121) filed with the SEC on May 10, 2012).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730316000085/exhibit1013.htm">10.17</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Amendment No. 2 to Lease Agreement between Bomax Properties, LLC and TransAct, dated January 14, 2016 (incorporated by reference to Exhibit 10.13 of the Company&#8217;s Annual Report on Form 10-K
                  (SEC File No. 000-21121) filed with the SEC on March 11, 2016).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730320000006/exhibit101.htm">10.18</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Amendment No. 3 to Lease Agreement between Bomax Properties, LLC and TransAct, dated February 29, 2020 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K
                  (SEC File No. 000-21121) filed with the SEC on March 4, 2020).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="ef20039038_ex10-19.htm">10.19*</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Amendment No. 4 to Lease Agreement between Bomax Properties, LLC and TransAct, dated July 15, 2022.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/ix?doc=/Archives/edgar/data/0001017303/000114036124036631/ef20031129_10q.htm"><span style="text-decoration: underline;">10.2</span><span style="text-decoration: underline;">0</span></a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Amendment No. 5 to Lease Agreement between Bomax Properties, LLC and TransAct, dated May 31, 2024 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q
                  (SEC File No. 000-21121) filed with the SEC on August 9, 2024).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000095012305003228/y06777exv10w13.txt"><span style="text-decoration: underline;">10.2</span><span style="text-decoration: underline;">1</span></a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Lease Agreement by and between Las Vegas Airport Properties LLC and TransAct dated December 2, 2004 (incorporated by reference to Exhibit 10.13 of the Company&#8217;s Annual Report on Form 10-K
                  (SEC File No. 000-21121) filed with the SEC on March 16, 2005).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730310000006/exhibit1019.htm">10.22</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">First Amendment to Lease Agreement by and between CIP Hughes Center LLC and TransAct dated August 24, 2009 (incorporated by reference to Exhibit 10.19 of the Company&#8217;s Annual Report on Form
                  10-K (SEC File No. 000-21121) filed with the SEC on March 16, 2010).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730315000047/exhibit102.htm">10.23</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Second Amendment to Lease Agreement by and between The Realty Associates Fund IX LP and TransAct dated June 30, 2015 (incorporated by reference to Exhibit 10.2 of the Company&#8217;s Quarterly
                  Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on August 7, 2015).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000095012307003917/y31948exv10w14.txt">10.24</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Lease Agreement by and between 2319 Hamden Center I, L.L.C. and TransAct dated November 27, 2006 (incorporated by reference to Exhibit 10.14 of the Company&#8217;s Annual Report on Form 10-K (SEC
                  File No. 000-21121) filed with the SEC on March 15, 2007).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730317000014/exhibit1020.htm">10.25</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">First Amendment to Lease by and between 2319 Hamden Center I, L.L.C. and TransAct dated January 3, 2017 (incorporated by reference to Exhibit 10.20 of the Company&#8217;s Annual Report on Form
                  10-K (SEC File No. 000-21121) filed with the SEC on March 16, 2017).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000042/exhbit101.htm">10.26</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify;">Second Amendment to Lease by and between 2319 Hamden Center I, L.L.C. and TransAct Technologies dated April 30, 2021 (incorporated by reference to Exhibit 10.1 of the Company's Quarterly Report on Form 10-Q
                  (SEC File No. 000-21121) filed with the SEC on May 13, 2021).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730320000037/exhibit102.htm">10.27</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Loan and Security Agreement, dated as of March 13, 2020, among Siena Lending Group LLC, TransAct Technologies Incorporated and the other Loan Parties from time to time party thereto
                  (incorporated by reference to Exhibit 10.2 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on May 22, 2020).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000061/exihibit991.htm">10.28</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify;">Amendment No. 1 To Loan and Security Agreement, dated as of July 21, 2021, among Siena Lending Group and TransAct Technologies Incorporated (incorporated by reference to Exhibit 99.1 to the Company's
                  Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on July 26, 2021)</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465922009128/ex10_1.htm">10.29</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;">Amendment No. 2 To Loan and Security Agreement, dated as of July 19, 2022, between Siena Lending Group LLC and TransAct Technologies Incorporated (incorporated by reference to Exhibit 10.1 to the Company&#8217;s
                  Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on July 25, 2022).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465922009128/ex10_2.htm"><span style="text-decoration: underline;">10.3</span><span style="text-decoration: underline;">0</span></a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Amended and Restated Fee Letter, dated as of July 19, 2022, between Siena Lending Group LLC and TransAct Technologies Incorporated (incorporated by reference to Exhibit 10.2 to the Company&#8217;s
                  Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on July 25, 2022).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465923006506/ex10_1.htm"><span style="text-decoration: underline;">10.3</span><span style="text-decoration: underline;">1</span></a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Letter Amendment, dated May 1, 2023, to Loan and Security Agreement between Siena Lending Group LLC and TransAct Technologies Incorporated (incorporated by reference to Exhibit 10.1 to the
                  Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on May 4, 2023).</div>
              </td>

  </tr>


</table>
        <div> <br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">35</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465924019481/ex10_1.htm">10.32</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Amendment No. 4 To Loan and Security Agreement, dated as of November 20, 2024, between Siena Lending Group LLC and TransAct Technologies Incorporated (incorporated by reference to Exhibit
                  10.1 to the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on November 21,2024).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465924019481/ex10_2.htm">10.33</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Second Amended and Restated Fee Letter, dated as of November 20, 2024, between Siena Lending Group LLC and TransAct Technologies Incorporated (incorporated by reference to Exhibit 10.2 to
                  the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on November 21, 2024).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000020/ex10_24.htm">10.34&#8224;</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Master License Agreement dated February 22, 2019 and amendments thereto (incorporated by reference to Exhibit 10.24 to the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed
                  with the SEC on March 12, 2021).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000020/ex10_25.htm">10.35&#8224;</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div>Master Development and License Agreement dated July 20, 2018 (incorporated by reference to Exhibit 10.25 to the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 12, 2021).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="ef20039038_ex19.htm">19*</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="color: #000000;">TransAct Technologies Incorporated Insider Trading Policy.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000020/ex21.htm">21</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="color: #000000;">Subsidiaries of the Company (incorporated by reference to Exhibit 21 to the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 12, 2021).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="ef20039038_ex23-1.htm">23.1*</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="color: #000000;">Consent of Marcum LLP.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="ef20039038_ex31-1.htm">31.1*</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Rule 13a-14(a) Certification of Chief Executive Officer in accordance with Section 302 of the Sarbanes-Oxley Act of 2002.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="ef20039038_ex31-2.htm">31.2*</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Rule 13a-14(a) Certification of Chief Financial Officer in accordance with Section 302 of the Sarbanes-Oxley Act of 2002.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;"><a href="ef20039038_ex32.htm">32&#8225;</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Certification of Chief Executive Officer and Chief Financial Officer pursuant to 18 U.S.C. Section 1350 as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000114036124013040/ef20015290_ex97.htm">97</a></div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;">TransAct Technologies Incorporated Clawback Policy in the Event of a Financial Restatement (incorporated by reference to Exhibit 97 to the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed
                  with the SEC on March 13, 2024).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;">101.INS</div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">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).</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;">101.SCH</div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Inline XBRL Taxonomy Extension Schema Document.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;">101.CAL</div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Inline XBRL Taxonomy Extension Calculation Linkbase Document.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;">101.DEF</div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Inline XBRL Taxonomy Extension Definition Linkbase Document.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify;">101.LAB</div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Inline XBRL Taxonomy Extension Label Linkbase Document.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify;">101.PRE</div>
              </td>

    <td style="width: 91.64%; vertical-align: top; background-color: rgb(204, 238, 255);">
                <div style="text-align: justify; color: #000000;">Inline XBRL Taxonomy Extension Presentation Linkbase Document.</div>
              </td>

  </tr>

  <tr>

    <td style="width: 8.36%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">104</div>
              </td>

    <td style="width: 91.64%; vertical-align: top;">
                <div style="text-align: justify; color: #000000;">Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101).</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-style: italic;">(x)</td>

    <td style="width: auto; vertical-align: top;">
                <div style="color: #000000; font-style: italic;">Management contract or compensatory plan or arrangement.</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: #000000; font-style: italic;">*</td>

    <td style="width: auto; vertical-align: top;">
                <div style="color: #000000; font-style: italic;">These exhibits are filed herewith.</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8224;</td>

    <td style="width: auto; vertical-align: top;">
                <div style="color: #000000; font-style: italic;">Certain portions of this exhibit (indicated by &#8220;[***]&#8221;) have been omitted pursuant to Item (601)(b)(10) of Regulation S-K.</div>
              </td>

  </tr>


</table>
        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: #000000;">&#8225;</td>

    <td style="width: auto; vertical-align: top;">
                <div style="color: #000000; font-style: italic;">These exhibits are furnished herewith.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;">&#160;</td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-weight: bold;">(b)</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Exhibits.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="color: #000000;">The Exhibits required by Item 601 of Regulation S-K under the Exchange Act are included in the Exhibit Index above under a(3) of this Item 15.</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;">&#160;</td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-weight: bold;">(c)</td>

    <td style="width: auto; vertical-align: top;">
                <div style="font-weight: bold;">Financial Statement Schedules.</div>
              </td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="color: #000000;">See the Notes to the Consolidated Financial Statements included in this Form 10-K.</div>

        <div><br/>
        </div>

        <div>
          <a id="Item16."><!--Anchor--></a>
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-spacing: 0;" class="DSPFListTable">


  <tr style="vertical-align: top;">

    <td style="text-align: right; vertical-align: top; width: 45pt;">
                  <div style="text-align: justify; color: #000000; font-weight: bold;">Item 16.</div>
                </td>

    <td style="text-align: left; vertical-align: top; width: auto;">
                  <div style="text-align: justify; color: #000000; font-weight: bold;">Form 10-K Summary.</div>
                </td>

  </tr>


</table>
        </div>

        <div style="text-align: justify; color: #000000;">None.</div>

        <div><br/>
        </div>

        <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">36</span></div>

          <div class="BRPFPageBreak" style="page-break-after: always;">
            <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

          <div class="BRPFPageHeader" style="width: 100%;">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

        <div style="text-align: center; color: #000000; font-weight: bold;"><a id="SIGNATURES"><!--Anchor--></a>SIGNATURES</div>

        <div><br/>
        </div>

        <div style="text-align: justify; color: #000000;">Pursuant to the requirements of Section 13 or 15(d) 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.</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 40%; vertical-align: top;">&#160;</td>

    <td rowspan="1" style="vertical-align: top;" colspan="3">
                <div style="color: #000000;">TRANSACT TECHNOLOGIES INCORPORATED</div>
              </td>

  </tr>

  <tr>

    <td style="width: 40%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top;">&#160;</td>

    <td style="width: 30%; vertical-align: top;">&#160;</td>

    <td colspan="1" style="width: 25%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 40%; vertical-align: top; padding-bottom: 2px;">&#160;</td>

    <td style="width: 5%; vertical-align: top; padding-bottom: 2px;">
                <div style="color: #000000;">By:</div>
              </td>

    <td style="width: 30%; vertical-align: top; border-bottom: 2px solid rgb(0, 0, 0);">
                <div style="text-align: center; color: #000000;">/s/ John M. Dillon</div>
              </td>

    <td colspan="1" style="width: 25%; vertical-align: top; padding-bottom: 2px;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 40%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top;">
                <div style="color: #000000;">Name:</div>
              </td>

    <td style="width: 30%; vertical-align: top;">
                <div style="text-align: center; color: #000000; font-weight: bold;">John M. Dillon</div>
              </td>

    <td colspan="1" style="width: 25%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 40%; vertical-align: top;">&#160;</td>

    <td style="width: 5%; vertical-align: top;">
                <div style="color: #000000;">Title:</div>
              </td>

    <td style="width: 30%; vertical-align: top;">
                <div style="text-align: center; color: #000000; font-weight: bold;">Chief Executive Officer</div>
              </td>

    <td colspan="1" style="width: 25%; vertical-align: top;">&#160;</td>

  </tr>


</table>
        <div><br/>
        </div>

        <div style="color: #000000;">Date: March 24, 2024</div>

        <div><br/>
        </div>

        <div style="color: #000000;">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities and on the dates indicated.</div>

        <div><br/>
        </div>

        <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="text-align: center; color: #000000;">Signature</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="text-align: center; color: #000000;">Title</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="text-align: center; color: #000000;">Date</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">&#160;</td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="color: #000000;">/s/ John M. Dillon</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">Chief Executive Officer and Director</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">
                <div style="text-align: center; color: rgb(0, 0, 0);">March 24, 2024</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">
                <div style="color: #000000; font-weight: bold;">John M. Dillon</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">(Principal Executive Officer)</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">&#160;</td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: bottom; border-bottom: #000000 2px solid;">
                <div style="color: #000000;">/s/ Steven A. DeMartino</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">President, Chief Financial Officer, Treasurer and Secretary</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">
                <div style="text-align: center; color: rgb(0, 0, 0);">March 24, 2024</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">
                <div style="color: #000000; font-weight: bold;">Steven A. DeMartino</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">(Principal Financial Officer)</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">&#160;</td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="color: #000000;">/s/ William J. DeFrances</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">Vice President and Chief Accounting Officer</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">
                <div style="text-align: center; color: rgb(0, 0, 0);">March 24, 2024</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">
                <div style="color: #000000; font-weight: bold;">William J. DeFrances</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">(Principal Accounting Officer)</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">&#160;</td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="color: #000000;">/s/ Haydee Ortiz Olinger</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">Chair of the Board</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">
                <div style="text-align: center; color: rgb(0, 0, 0);">March 24, 2024</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">
                <div style="color: #000000; font-weight: bold;">Haydee Ortiz Olinger</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">&#160;</td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="color: #000000;">/s/ Audrey P. Dunning</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">Director</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">
                <div style="text-align: center; color: rgb(0, 0, 0);">March 24, 2024</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">
                <div style="color: #000000; font-weight: bold;">Audrey P. Dunning</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">&#160;</td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="color: #000000;">/s/ Daniel M. Friedberg</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">Director</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">
                <div style="text-align: center; color: rgb(0, 0, 0);">March 24, 2024</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">
                <div style="color: #000000; font-weight: bold;">Daniel M. Friedberg</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">&#160;</td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="color: #000000;">/s/ Randall S. Friedman</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">Director</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">
                <div style="color: rgb(0, 0, 0); text-align: center;">March 24, 2024</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">
                <div style="color: #000000; font-weight: bold;">Randall S. Friedman</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">&#160;</td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top; text-align: center;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div style="color: #000000;">/s/ Emanuel P. N. Hilario</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">
                <div style="color: #000000;">Director</div>
              </td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">
                <div style="color: rgb(0, 0, 0); text-align: center;">March 24, 2024</div>
              </td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 8.88%; vertical-align: top;">&#160;</td>

    <td style="width: 25.06%; vertical-align: top;">
                <div style="color: #000000; font-weight: bold;">Emanuel P. N. Hilario</div>
              </td>

    <td style="width: 3.55%; vertical-align: top;">&#160;</td>

    <td style="width: 40.12%; vertical-align: top;">&#160;</td>

    <td style="width: 1.77%; vertical-align: top;">&#160;</td>

    <td style="width: 13.18%; vertical-align: top;">&#160;</td>

    <td style="width: 7.44%; vertical-align: top;">&#160;</td>

  </tr>


</table>
        <div><br/>
        </div>

      </div>

    </div>

  </div>

</div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">
  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
    <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: #000000; font-weight: normal; font-style: normal;">37</span></div>

    <div class="BRPFPageBreak" style="page-break-after: always;">
      <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

    <div class="BRPFPageHeader" style="width: 100%;">
      <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

    </div>

  </div>

  <!--PROfilePageNumberReset%Num%1%F-%%-->
  <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="FSIndex"><!--Anchor--></a>TRANSACT TECHNOLOGIES INCORPORATED</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="INDEXTOCONSOLIDATEDFINANC"><!--Anchor--></a><a id="INDEXTO"><!--Anchor--></a>INDEX TO CONSOLIDATED FINANCIAL STATEMENTS</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 88.28%; vertical-align: top;">
          <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Consolidated Financial Statements</div>
        </td>

    <td style="width: 2.64%; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td style="width: 9.08%; vertical-align: top; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

  </tr>

  <tr>

    <td style="width: 88.28%; vertical-align: top; background-color: #CCEEFF;">
          <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><a href="#REGISTEREDPUBLICACCOUNTIN">Report of Independent Registered Public Accounting Firm</a> (PCAOB ID <span style="-sec-ix-hidden:Fact_10f4a0dd8bbe41ea9f478334d704bcf8">688</span>)</div>
        </td>

    <td style="width: 2.64%; vertical-align: top; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td style="width: 9.08%; vertical-align: top; background-color: #CCEEFF;">
          <div style="text-align: center; color: rgb(55, 96, 146); font-family: 'Times New Roman'; font-size: 10pt;">F-2</div>
        </td>

  </tr>

  <tr>

    <td style="width: 88.28%; vertical-align: top; background-color: #FFFFFF;">
          <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><a href="#BalanceSheet">Consolidated Balance Sheets</a> as of December 31, 2024 and 2023</div>
        </td>

    <td style="width: 2.64%; vertical-align: top; background-color: rgb(255, 255, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td style="width: 9.08%; vertical-align: top; background-color: #FFFFFF;">
          <div style="text-align: center; color: rgb(55, 96, 146); font-family: 'Times New Roman'; font-size: 10pt;">F-5</div>
        </td>

  </tr>

  <tr>

    <td style="width: 88.28%; vertical-align: top; background-color: #CCEEFF;">
          <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><a href="#Operations">Consolidated Statements of Operations</a> for the years ended December 31, 2024 and 2023</div>
        </td>

    <td style="width: 2.64%; vertical-align: top; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td style="width: 9.08%; vertical-align: top; background-color: #CCEEFF;">
          <div style="text-align: center; color: rgb(55, 96, 146); font-family: 'Times New Roman'; font-size: 10pt;">F-6</div>
        </td>

  </tr>

  <tr>

    <td style="width: 88.28%; vertical-align: top; background-color: #FFFFFF;">
          <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><a href="#ComprehensiveIncome">Consolidated Statements of Comprehensive (Loss) Income</a> for the years ended December 31, 2024 and 2023</div>
        </td>

    <td style="width: 2.64%; vertical-align: top; background-color: rgb(255, 255, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td style="width: 9.08%; vertical-align: top; background-color: #FFFFFF;">
          <div style="text-align: center; color: rgb(55, 96, 146); font-family: 'Times New Roman'; font-size: 10pt;">F-7</div>
        </td>

  </tr>

  <tr>

    <td style="width: 88.28%; vertical-align: top; background-color: #CCEEFF;">
          <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><a href="#Equity">Consolidated Statements of Changes in Shareholders&#8217; Equity</a> for the years ended December 31, 2024 and 2023</div>
        </td>

    <td style="width: 2.64%; vertical-align: top; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td style="width: 9.08%; vertical-align: top; background-color: #CCEEFF;">
          <div style="text-align: center; color: rgb(55, 96, 146); font-family: 'Times New Roman'; font-size: 10pt;">F-8</div>
        </td>

  </tr>

  <tr>

    <td style="width: 88.28%; vertical-align: top; background-color: #FFFFFF;">
          <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><a href="#CashFlows">Consolidated Statements of Cash Flows</a> for the years ended December 31, 2024 and 2023</div>
        </td>

    <td style="width: 2.64%; vertical-align: top; background-color: rgb(255, 255, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td style="width: 9.08%; vertical-align: top; background-color: #FFFFFF;">
          <div style="text-align: center; color: rgb(55, 96, 146); font-family: 'Times New Roman'; font-size: 10pt;">F-9</div>
        </td>

  </tr>

  <tr>

    <td style="width: 88.28%; vertical-align: top; background-color: #CCEEFF;">
          <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><a href="#Notes">Notes to Consolidated Financial Statements</a></div>
        </td>

    <td style="width: 2.64%; vertical-align: top; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td style="width: 9.08%; vertical-align: top; background-color: #CCEEFF;">
          <div style="text-align: center; color: rgb(55, 96, 146); font-family: 'Times New Roman'; font-size: 10pt;">F-10</div>
        </td>

  </tr>


</table>
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span>
   <span style="font-family: 'Times New Roman';"><br/>
  </span> <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
    <div style="width: 100%;" class="BRPFPageFooter"></div>

    <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-1</span></div>

    <div class="BRPFPageBreak" style="page-break-after: always;">
      <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

    <div class="BRPFPageHeader" style="width: 100%;">
      <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

    </div>

  </div>

  <div style="text-align: center; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="REPORT"><!--Anchor--></a>REPORT OF INDEPENDENT <a id="REGISTEREDPUBLICACCOUNTIN"><!--Anchor--></a>REGISTERED PUBLIC<span style="color: rgb(0, 0, 0);"> ACCOUNTING FIRM</span></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
  </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">To the Shareholders and Board of Directors of</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-weight: normal;">TransAct Technologies Incorporated</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-weight: bold;">Opinion on the Financial Statements</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">
    <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">
      <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">We have audited the accompanying consolidated balance sheets of TransAct
          Technologies Incorporated (the &#8220;Company&#8221;) as of December 31, 2024 and 2023, the related consolidated statements of operations, comprehensive (loss) income</span>,<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">
          changes in shareholders&#8217; equity and cash flows for each of the two years in the period ended December 31, 2024, and the related notes (collectively referred to as the &#8220;financial statements&#8221;).&#160; In our opinion, the financial statements present
          fairly, in all material respects, the financial position of the Company as of December 31, 2024 and 2023, and the results of its operations and its cash flows for each of the two years in the period ended December 31, 2024, in conformity with
          accounting principles generally accepted in the United States of America.</span></div>

    </div>

  </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">Basis for Opinion</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">These financial statements are the responsibility of the Company's management. Our responsibility is to express an opinion on the Company's financial
    statements based on our audit<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">s</span>. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States)
    ("PCAOB") and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</div>

  <div><br/>
  </div>

  <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We conducted our audit<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">s</span> in accordance with the
    standards of the PCAOB<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">. </span>Those standards require that we plan and perform the audit<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">s</span> to obtain reasonable assurance about whether the financial statements are free of material misstatement, whether due to error or fraud. The Company is not required to have, nor were we engaged to perform, an
    audit of its internal control over financial reporting. As part of our audit<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">s</span> we are required to obtain an understanding of internal control over
    financial reporting but not for the purpose of expressing an opinion on the effectiveness of the Company's internal control over financial reporting. Accordingly, we express no such opinion.</div>

  <div><br/>
  </div>

  <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our audit<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">s</span> included performing procedures to assess
    the risks of material misstatement of the financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in
    the financial statements. Our audit<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">s</span> also included evaluating the accounting principles used and significant estimates made by management, as well as
    evaluating the overall presentation of the financial statements. We believe that our audit<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">s </span>provide a reasonable basis for our opinion.</div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">Critical Audit Matters</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">
    <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">
      <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The critical audit matters communicated below are matters arising from the current period audit of the financial statements that were communicated or
        required to be communicated to the audit committee and that: (1) relate to accounts or disclosures that are material to the financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of
        critical audit matters does not alter in any way our opinion on the financial statements, taken as a whole, and we are not, by communicating the critical audit matters below, providing separate opinions on the critical audit matters or on the
        accounts or disclosures to which they relate.</div>

    </div>

  </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; font-style: italic; font-weight: bold;"><a id="z_Hlk160007324"></a>Valuation of Inventories - Excess and Obsolete Inventory Reserve</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">
    <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As described in Note 2 to the consolidated financial statements, inventories are stated at the lower of average cost or net realizable value. The Company
      reviews net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completions, disposal and transportation, historical usage and estimates of future demand. Based on these reviews, inventory
      write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities, and net realizable value.</div>

  </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
    <div style="width: 100%;" class="BRPFPageFooter"></div>

    <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-2</span></div>

    <div style="page-break-after: always;" class="BRPFPageBreak">
      <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

    <div class="BRPFPageHeader" style="width: 100%;">
      <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

    </div>

  </div>

  <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">A majority of the Company&#8217;s excess and obsolete inventory reserve relates to excess quantities of products, based on the Company&#8217;s inventory levels and
    future product purchase commitments compared to assumptions relating to future demand and market conditions. As of December 31, 2024, the Company&#8217;s consolidated inventories balance was $16.161 million.</div>

  <div><br/>
  </div>

  <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The principal considerations for our determination that the Company&#8217;s valuation of inventories, specifically the excess and obsolete inventory reserve, was a
    critical audit matter included the following: (1) management identifies inventories as a critical accounting estimate, and (2) there were significant judgments made by management in estimating the excess and obsolete inventory reserve, including
    developing assumptions related to future product demand based on historical usage and current market conditions. This in turn led to a high degree of auditor judgment in performing our audit procedures, which were designed to evaluate the
    reasonableness of audit evidence related to management&#8217;s assumptions of future product demand.</div>

  <div><br/>
  </div>

  <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Addressing the matter involved performing procedures and evaluating audit evidence in connection with forming our overall opinion on the consolidated
    financial statements. These procedures included, among others,</div>

  <div><br/>
  </div>

  <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
        </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
          <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Obtained an understanding of the Company&#8217;s accounting policy related to inventory, specifically as it relates to the excess and obsolete inventory reserve and ensure it
            is relevant to the accounting standards and consistent applied to prior periods;</div>
        </td>

  </tr>


</table>
  <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
        </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
          <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Recalculated the inventory reserve based on the Company's policy and our knowledge obtained above.&#160; Ensure mathematical accuracy and test the computations for a sample of
            inventory items;</div>
        </td>

  </tr>


</table>
  <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
        </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
          <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"> Evaluated management&#8217;s methodology and process for developing the excess and obsolete inventory reserve, including estimating assumptions related to future product
            demand based on historical usage and current market conditions;</div>
        </td>

  </tr>


</table>
  <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
        </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
          <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tested management&#8217;s calculation of the excess and obsolete inventory reserve, which included evaluating the completeness and accuracy of underlying data used by
            management in the calculation, principally inputs such as actual usage and management&#8217;s determination of future estimated consumption of inventory and comparing them to historical amounts;</div>
        </td>

  </tr>


</table>
  <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
        </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
          <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">
            <div style="text-align: justify; font-family: 'Times New Roman',Times,serif;">Performed observation of inventory at various Company locations to ensure the quantities are in working order and identify damaged or poor conditioned
              inventory.</div>
          </div>
        </td>

  </tr>


</table>
  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Evaluation of the Realizability of Deferred Tax Assets</div>

  <div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;"> <br/>
  </div>

  <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As described in Note 2 to the consolidated financial statements, the income tax amounts are accounted for under the liability method in accordance with ASC
    740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;). Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amount of existing assets and liabilities and their
    respective tax bases and operating loss and tax carryforwards. Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which those temporary differences are expected to be recovered or settled.</div>

  <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"> <br/>
  </div>

  <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: justify;">As described in Note 11 to the consolidated financial statements, at December 31, 2024, the Company had deferred tax assets of $8.3 million. These deferred
    tax assets consist primarily deductible temporary differences related to $3.7 million of capitalized R&amp;D expenses, $0.9 million of R&amp;D credit carryforward, $0.85 million of stock compensation expense, $1 million for inventory reserves and $1.2
    million in net operating losses. The Company recognizes deferred tax assets to the extent it is more likely than not that the assets will be realized. The Company considered positive and negative evidence, including future reversals of existing taxable
    temporary differences, projected future taxable income, tax planning strategies, and recent results of operations. To the extent that the Company believes realization is not likely, the Company has established a valuation allowance.</div>

  <div><br/>
  </div>

  <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
    <div style="width: 100%;" class="BRPFPageFooter"></div>

    <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-3</span></div>

    <div style="page-break-after: always;" class="BRPFPageBreak">
      <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

    <div class="BRPFPageHeader" style="width: 100%;">
      <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

    </div>

  </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">
    <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We identified the evaluation of the realizability of deferred tax assets as a critical audit matter. The evaluation of the realizability of deferred tax
      assets required subjective auditor judgment to assess the projections of future taxable income, specifically projected revenue growth rates, over the periods in which those temporary differences become deductible.</div>

    <div><br/>
    </div>

    <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following are the primary procedures we performed to address this critical audit matter.</div>

    <div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"> <br/>
    </div>

    <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
          </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Reviewed the Company&#8217;s overall tax position by reviewing its income tax returns and related provision and deferred tax analysis. This allowed us to understand the
              nature and timing that has led to the recognition of these deferred tax assets;</div>
          </td>

  </tr>


</table>
    <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
          </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Evaluated the Company&#8217;s process to assess the &#8220;more likely than not&#8221; scenario and review the Company&#8217;s position paper on its deferred tax position including our
              evaluation of their negative factors and positive factors related to the assessment;</div>
          </td>

  </tr>


</table>
    <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
          </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Reviewed and recalculated the company&#8217;s analysis of the deferred tax calculation to ensure accuracy in the schedule and ensure that the Company has reflected the
              current tax laws and regulations;</div>
          </td>

  </tr>


</table>
    <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
          </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">
              <div style="text-align: justify; font-family: 'Times New Roman',Times,serif;">Evaluated the timing and impact of the reversal of the deferred tax liabilities and how they impact or utilized the deferred tax assets. We considered the
                Company&#8217;s historical profitability trends and cumulative profits over a reasonable period of time;</div>
            </div>
          </td>

  </tr>


</table>
    <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
          </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">
              <div style="text-align: justify; font-family: 'Times New Roman',Times,serif; font-size: 10pt;">Evaluated the Company&#8217;s projected revenue and net income (loss) growth rates used to project future taxable income by comparing them to
                (1) historical and projected growth rates of peer entities and (2) historical growth rates of the Company.</div>
            </div>
          </td>

  </tr>


</table>
    <table cellspacing="0" cellpadding="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt;"><br/>
          </td>

    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">
              <div style="text-align: justify; font-family: 'Times New Roman',Times,serif; font-size: 10pt;">Performed a sensitivity analysis to assess the impact of reasonably possible changes in the projected future taxable income, including
                changes to projected revenue growth rates, on the Company&#8217;s determination of the realizability of deferred tax assets.</div>
            </div>
          </td>

  </tr>


</table>
    <div><br/>
    </div>

    <div><br/>
    </div>

    <div><span style="font-family: 'Times New Roman'; font-size: 10pt;">/s/<ix:nonNumeric name="dei:AuditorName" id="Fact_9380c26b9d68493ca7a31daae512a2f5" contextRef="c20240101to20241231">Marcum LLP</ix:nonNumeric></span></div>
</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Marcum LLP</div>

  <div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-variant: small-caps;"> <br/>
    </span></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;">We have served as the Company&#8217;s auditor since 2020.<br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="dei:AuditorLocation" id="Fact_3aa4cd2594dc41eca363e893ed79e988" contextRef="c20240101to20241231">Hartford, Connecticut</ix:nonNumeric></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">March 24, 2025</div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
    </span> </div>

  <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
    <div style="width: 100%;" class="BRPFPageFooter"></div>

    <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-4</span></div>

    <div class="BRPFPageBreak" style="page-break-after: always;">
      <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

    <div class="BRPFPageHeader" style="width: 100%;">
      <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

    </div>

  </div>

</div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="BalanceSheet"><!--Anchor--></a>TRANSACT TECHNOLOGIES INCORPORATED</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">CONSOLIDATED BALANCE SHEETS</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">(in thousands, except share data)</div>

    <div style="text-align: left;"><br/>
    </div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Assets:</div>
          </td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Current assets:</div>
          </td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Cash and cash equivalents</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" id="Fact_dc38f793849b49d398505fb6cf842d88" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,394</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" id="Fact_583b533e6d5e4782b75189719d3e9120" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,321</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accounts receivable, net of allowance for expected credit losses of $<ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_5cfb9d009124444ca049f43740764ff5" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">474</ix:nonFraction> and $<ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_69cd8a5607b4489bbd6c58bcdcbfc67a" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">768</ix:nonFraction><br/>
              </div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" id="Fact_da7f8c026cb14a72b76f182cf03d53b9" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,507</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" id="Fact_5be95321430a414093f09cb81397971c" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,824</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Inventories</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_6f37ef3f7db84b4ea113c4274e48ce08" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">16,161</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_890f3619f73b4ab6957218d084b1b186" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,759</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Prepaid income taxes</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PrepaidTaxes" id="Fact_ec019ccb646649b88e5e6385a1ce6729" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">401</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PrepaidTaxes" id="Fact_cc488212d8274693b08b17c5ec692e84" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">322</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other current assets</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherAssetsCurrent" id="Fact_c621a9ecf8c044ac9d4532230a8cc2a9" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">899</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherAssetsCurrent" id="Fact_0ed2549279ef48ba81d668f705443126" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">773</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total current assets</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AssetsCurrent" id="Fact_47c80d47528f4025bb455a337e876702" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">38,362</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AssetsCurrent" id="Fact_b32ed7f0d1984329b2f02aee0d1a40c6" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">40,999</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Fixed assets, net of accumulated depreciation of $<ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" id="Fact_6a1e0f8d0c434cd081de6bb4d8f963d2" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,468</ix:nonFraction>
                and $<ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" id="Fact_362acf2f88ba4019aa275804921f7581" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">18,646</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_349ce91ac14746d29a84efcb2acc16f7" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,818</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_5020fa4f4289473f81eca36d73e98e11" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,421</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Right-of-use assets, net<br/>
              </div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" id="Fact_7039a3bd928145c186887187892cd5b9" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,141</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" id="Fact_898b7a32715343cbaa3fff72cb278b40" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,602</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Goodwill</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:Goodwill" id="Fact_beedf814ca784025aa80bd3a309a4216" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,621</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:Goodwill" id="Fact_0459ccce31294f4d93e2f3c9b01ff012" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,621</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax assets</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_ac81821a901646049ede044faf82a3bf" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_74eae8de516b45d3bd6212215677a06d" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,304</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Intangible assets, net of accumulated amortization of $<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_15c23ab9a9074314a0e10d9e3c6557eb" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,606</ix:nonFraction> and $<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_030387d884194fef86b26bd0cbbed1ba" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,518</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" id="Fact_688b7b571d5849cb987c3b48ff402985" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" id="Fact_832f2ad90b014288b5756ec27867b837" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">88</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other assets</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherAssetsNoncurrent" id="Fact_134028c384a14bf496401b2925751878" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">92</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherAssetsNoncurrent" id="Fact_eee28124a15d4468ba007e98caefc7fb" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">163</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AssetsNoncurrent" id="Fact_f98528221e334acbb8e30b0227adee44" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,672</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AssetsNoncurrent" id="Fact_52a881492ad1420f8305452b8aad9a57" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">13,199</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total assets</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:Assets" id="Fact_5b0aed3ca7b24b48bda59bc9f77ebff8" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">44,034</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:Assets" id="Fact_941ed27c59ec4204915f05b3593ca333" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">54,198</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Liabilities and Shareholders&#8217; Equity:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Current liabilities:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Revolving loan payable</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LinesOfCreditCurrent" id="Fact_b52ccdf38ded4423a09e0bbd24cedc89" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,000</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LinesOfCreditCurrent" id="Fact_4d69ea46c3fb46fe93a0caa7d1d8220c" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,250</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accounts payable</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccountsPayableCurrent" id="Fact_9431ea352afe4a57b623461b9c954df2" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,569</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccountsPayableCurrent" id="Fact_3ce1a3fc8f6d47cf9d4caf4e4c12bb63" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,431</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accrued liabilities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" id="Fact_c6bc5b43bf1440c8b24889bfa600510d" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,253</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" id="Fact_7567297804fc4ccd91278f0f8ae5f8fa" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,947</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Lease liabilities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" id="Fact_7bf1f8875ea9401f9a540a9fb804bde5" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">955</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" id="Fact_7b92017c9d514168a99a6fba3cfd5360" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">929</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" id="Fact_82ae79e1294f41d198e9ecd7f629b7cd" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,107</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" id="Fact_138cf84547f242aab1e1ce89c2b02615" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,079</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total current liabilities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" id="Fact_676974ef9d4148bfbc9f533bb6694ce1" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,884</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" id="Fact_4e1872f1b4304d7baf9aef758b0d213c" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">13,636</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, net of current portion</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityNoncurrent" id="Fact_e1070e5401514475b77b36636d1d9f36" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">246</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityNoncurrent" id="Fact_ac778866a23b42a2820a3b4c6ffb0492" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">209</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Lease liabilities, net of current portion</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" id="Fact_528f1116b73f41089a4fbb63eade9f06" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">231</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" id="Fact_13ee33ff73f4499988f10eb686e63255" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">720</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other liabilities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherLiabilitiesNoncurrent" id="Fact_045babe7d33c4ec293dbaf327c8358ab" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">40</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherLiabilitiesNoncurrent" id="Fact_9e1c11405ee4484885d92a297297e43c" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">219</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesNoncurrent" id="Fact_31320663447a42d8867cba3f5eee87a3" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">517</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesNoncurrent" id="Fact_6ae12eae776c4be7b38a720951b43143" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,148</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total liabilities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:Liabilities" id="Fact_59afe1063d52406abe1778356a4a9442" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">13,401</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:Liabilities" id="Fact_7730048b802f40cab53a203b2d8db1e0" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,784</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Commitments and contingencies (see Notes 9 and 15)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1"><span style="-sec-ix-hidden:Fact_b2b91892050d45bfbdfe14f96b9ad30d"> </span></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1"><span style="-sec-ix-hidden:Fact_c98ce75021e247d9a6a16f2ba55381cc"> </span></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Shareholders&#8217; equity:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Preferred stock, $<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact_f86ce06d010f435abf9124342bf6db5b" contextRef="c20231231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact_dddc05d2e8aa4a728a7b7a4c80efafd9" contextRef="c20241231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></span> value, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" id="Fact_a42d039de3dc41afbd55d3c97cbf21ff" contextRef="c20231231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" id="Fact_1edbc5a0346c43cebf620bf74588452e" contextRef="c20241231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">4,800,000</ix:nonFraction></ix:nonFraction></span> authorized, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" id="Fact_fe65d4b75ab64a77896a4d19a0e05e8c" contextRef="c20231231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" id="Fact_fbe770e4c6b1429d9d607365a60810a5" contextRef="c20241231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" id="Fact_c124fbc38d5844fd98797fb99fd0b53f" contextRef="c20241231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" id="Fact_0af5a4ebe8144710a9e3aed1bb72e2db" contextRef="c20231231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen">none</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction></span> issued and outstanding</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PreferredStockValue" id="Fact_40091bc7741d4c30bc94235bab08a537" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PreferredStockValue" id="Fact_aa1706a466b94e0daed752056a8fea6e" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Preferred stock, Series A, $<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact_9c235aa12bce46f29f8d1271525a7276" contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact_809f19b31ab0419d98a33913bea52408" contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></span> par value, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" id="Fact_c768fa0b756f459a883e928ff4ea1141" contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" id="Fact_22b81b79721c4d438b9e3e09277e136a" contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">200,000</ix:nonFraction></ix:nonFraction></span> authorized, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" id="Fact_aa91782b29454f35a0aae58c79280a1d" contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" id="Fact_7ed6d242b5fc4796b0e95135652705cd" contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" id="Fact_7b9ccf585c5d4ecb9542ecaddca613a2" contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" id="Fact_78bab9f77b8c4e0b9062d96b430517e1" contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen">none</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction></span> issued and outstanding</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PreferredStockValue" id="Fact_b3caad4f6f4f4b829ae5cce3127cc311" contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PreferredStockValue" id="Fact_88c0df72a8c5449f92f0b188457537bc" contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Common stock, $<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" id="Fact_2a1c6cbaf196409f9f26d3ce2a2704c2" contextRef="c20231231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" id="Fact_081862335a224749b7c0291b12e7031d" contextRef="c20241231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></span> par value, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" id="Fact_a1a48a6b8a364f589d7d2c1fb79041b2" contextRef="c20231231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" id="Fact_8de65fef4ec2462caa29b56168dcf35d" contextRef="c20241231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">20,000,000</ix:nonFraction></ix:nonFraction></span> authorized at December 31, <span style="text-indent: 0pt;">2024</span> and <span style="text-indent: 0pt;">2023</span>; <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_a2d9c23e39ae45188d662d26184b9bc1" contextRef="c20241231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">14,068,049</ix:nonFraction></span> and <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_d9360c2a97724a739630f1f31160adbd" contextRef="c20231231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">14,003,653</ix:nonFraction></span> shares
                issued; <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" id="Fact_9aac3f6c46504bcd9b389800fc13bc08" contextRef="c20241231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">10,023,207</ix:nonFraction></span> and <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" id="Fact_021edece6d584b4887d3dbd01a5c2b4a" contextRef="c20231231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">9,958,811</ix:nonFraction></span>
                shares outstanding, at December 31, <span style="text-indent: 0pt;">2024</span> and <span style="text-indent: 0pt;">2023</span>, respectively</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockValue" id="Fact_e9293e9da13042df8a824413584b1695" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">141</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockValue" id="Fact_d79a01ab64174b61b5acd6cf7fb666c9" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">140</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Additional paid-in capital</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdditionalPaidInCapitalCommonStock" id="Fact_61f71ec4c79b46d48bcade1398dab821" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">58,141</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdditionalPaidInCapitalCommonStock" id="Fact_0712927a75454d7bb8d671f668585304" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">57,055</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Retained earnings</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_c8ad956cdfdc4b20b25ca427ee45edd4" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,515</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_7537049d901344d7a5f92a48207479b0" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,378</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accumulated other comprehensive loss, net of tax</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" id="Fact_d1a2e72d73474221a858656645d50549" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">54</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" id="Fact_fdeae2fbd31547db958d3723c52a4d26" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">49</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Treasury stock, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:TreasuryStockCommonShares" id="Fact_778bf5fafae74352840cfde6b015f35e" contextRef="c20241231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:TreasuryStockCommonShares" id="Fact_41a2171c81b5487eb8580795f21f0d7a" contextRef="c20231231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">4,044,842</ix:nonFraction></ix:nonFraction></span> shares, at cost</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:TreasuryStockValue" id="Fact_813f496465c9408dbb2883294a468782" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:TreasuryStockValue" id="Fact_279cc2e009164842adfe227fc10e3d56" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total shareholders&#8217; equity</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_7e41591c679f40daa3ccc023a5793d5d" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30,633</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_514e8c2b684846ab8a2c665dc4af7dad" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">39,414</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total liabilities and shareholders&#8217; equity</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" id="Fact_083b3e7b48794daab53e4757a40932a6" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">44,034</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" id="Fact_7bedaedb6b3c4d6696fcb6a07a8ecdb8" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">54,198</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
    <div><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>

    <div><br/>
    </div>

    <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div class="BRPFPageFooter" style="width: 100%;"></div>

      <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-5</span></div>

      <div class="BRPFPageBreak" style="page-break-after: always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

      <div class="BRPFPageHeader" style="width: 100%;">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <div class="BRPFPageFooter" style="width: 100%;"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="Operations"><!--Anchor--></a>TRANSACT TECHNOLOGIES INCORPORATED</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">CONSOLIDATED STATEMENTS OF OPERATIONS</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">(in thousands, except per share data)</div>

    <div><br/>
    </div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_b914f3ce647a4c0f8346609e0ad2a253" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">43,384</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_dbb960f735184e13a2cfa3af5f088b4b" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">72,631</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Cost of sales</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_69c23b3db0cb45a891d7afa2793e21b7" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">21,902</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_1b3a75d70980491c9d0ee70620d0f0e1" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">34,231</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross profit</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_b826665da3574e42a635bb60c78085c1" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">21,482</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_dfd7f60d840649d1ad3692decf07a86d" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">38,400</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Operating expenses:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Engineering, design and product development</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" id="Fact_5d4de807d9d14ed4823cf9fe616cb038" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,977</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" id="Fact_493beea135864d9d9816fdf88dfc5b82" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,442</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Selling and marketing</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:SellingAndMarketingExpense" id="Fact_dfaf9e435c454cba8f0521e7328c632f" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,195</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:SellingAndMarketingExpense" id="Fact_0d7aac92a23a494196a6902292beac50" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,934</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">General and administrative</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GeneralAndAdministrativeExpense" id="Fact_92510088bbb340ddb1ca5204b49ca33d" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,936</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GeneralAndAdministrativeExpense" id="Fact_aaa6fc5e4fba4b95beffea4a27af82b3" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">13,318</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingExpenses" id="Fact_ff795e8c87b64f879038a7ac72017883" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">25,108</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingExpenses" id="Fact_abab51d8dbdc4049be43bff38a0c6ef3" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32,694</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Operating (loss) income</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_609fbabd315047d19fb4324d6a48a785" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,626</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_4611ceafb8a6446fb71cf0d36f03f4ff" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,706</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Interest and other income (expense):</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Interest expense</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:InterestExpenseNonoperating" id="Fact_e00094b182bc41fe9088342e0bbc2902" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">322</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:InterestExpenseNonoperating" id="Fact_66761a3d3d53417d82dd2627ad217b4c" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">310</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Interest income</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InterestIncomeDomesticDeposits" id="Fact_664ed0a3c1bb47e8acd42efda92d5c05" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">469</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InterestIncomeDomesticDeposits" id="Fact_42bcf35875824ee9a3138dbd544a6aa5" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">55</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other, net</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" id="Fact_eb572a242efc4a34b22aff8e7b2f6812" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">89</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" id="Fact_208c1a5da84049f1869faedd1c09d67c" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">452</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" id="Fact_d52e5e5495cc47039106578f9074211c" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">58</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" id="Fact_e2df044afd134d4c9c869300bd1e9948" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">197</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(Loss) income before income taxes</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_db9675ebee0e4a4eabd956569d5b7201" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,568</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_3e478f21238d43fd8bec39fe95053e6d" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,903</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Income tax expense</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_604b3def360d41dd83a6dd1d3441005d" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,295</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_442da0f297014d3796640168da238b29" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,155</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e673ca574d7745df842c6d89b8b4f42e" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,863</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_3ed8be3210bb4e70a0fd7fa3a937cc95" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,748</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income per common share:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_4eb214617b6949229dd34d649cbc2fe8" contextRef="c20240101to20241231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.99</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_e80484973380404fb38e2540cf277b45" contextRef="c20230101to20231231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.48</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_ecde569f4bf3484782479ab8e6892a32" contextRef="c20240101to20241231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.99</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_892cb70786714b2c853dc29f7eab6d8a" contextRef="c20230101to20231231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.47</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Shares used in per-share calculation:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_d0286938e38c44a49cf415096d8b7fe1" contextRef="c20240101to20241231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,997</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_00d00d609508466eb9605ec64b913a63" contextRef="c20230101to20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,951</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_889cbdb12eea49648e867573c7436a6e" contextRef="c20240101to20241231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,997</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_f2ddee4413684a96b04aa98a5f3b7e6d" contextRef="c20230101to20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,021</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
    <div><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>

    <div><br/>
    </div>

    <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-6</span></div>

      <div class="BRPFPageBreak" style="page-break-after: always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <div class="BRPFPageFooter" style="width: 100%;"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="ComprehensiveIncome"><!--Anchor--></a>TRANSACT TECHNOLOGIES INCORPORATED</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME<br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">(in thousands)</div>

    <div><br/>
    </div>

    <table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
                <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income</div>
              </div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_a8f6449d314f4ba8b9eb3fdc932aebe6" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,863</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_b12052b84f7a4232910080d7bc5f990e" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,748</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign currency translation adjustment, net of tax</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_c664e3c09b6148ee91cdeb329dcdd4be" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_a78e7a6171d1416cb65883114a749d59" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Comprehensive (loss) income</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_12a01d6ed911485a96240f7f2ff15cc1" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,868</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_0a73c66220f44385b57063917d0a867e" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,778</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

  </tr>


</table>
    <div style="text-align: left;"><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>

    <div><br/>
    </div>

    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-7</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <div style="width: 100%;" class="BRPFPageFooter"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">
  <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="Equity"><!--Anchor--></a>TRANSACT TECHNOLOGIES INCORPORATED</div>

  <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS&#8217; EQUITY</div>

  <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">(in thousands, except share data)</div>

  <div><br/>
  </div>

  <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Common Stock</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Additional</div>
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Paid-in</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Retained</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Treasury</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accumulated</div>
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Comprehensive</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> Shares</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Amount</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Capital</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Earnings</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Income (Loss)<br/>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Equity</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF; white-space: nowrap;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Balance, December 31, <span style="text-indent: 0pt;">2022</span></span></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_76545618a92c4e2e847d7bee0a94a3e9" contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">9,911,883</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_70e365f37d194fd988fad07b319eab64" contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">139</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_41811175df2442f98031f147c20d9781" contextRef="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">56,282</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_e2fdbf4d8cf24fef9ecb0eec255c546b" contextRef="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,630</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_0c137a32f9214b8fbeb18796a3694e56" contextRef="c20221231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_de2b5d0798584a7fa66e012a25c0267c" contextRef="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">79</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_1ef706c1c3214f1eb30ccc8a05c8d8ed" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">33,862</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Issuance of common stock from exercise of stock options</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_1b2ae42a192c47c0b4f01802b7b7ac42" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">1,875</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_88ee407701814295936cc10f7d26b15d" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_f80498bdd0de4ba9a4b48329a78a1fb3" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_1c8739dbd16c4b9a9742c0058305b851" contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_ab68e49633fb468abc74642a4c7a931a" contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_43d4c3da527144a48156dc0623a4c075" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_b76246ae6cb84212b03e13b6affe6ede" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Issuance of common stock on restricted stock units</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" id="Fact_b6df49a369f24e31b5110b71eecb0069" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">58,705</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_7d6a952111404ab6a666cbd420099c4e" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_b3f0402d997c4f769140108c6285f24d" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_83f7f6a1eea54375a16260c6a55ade1c" contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_b5d030a2f24247cc843c043623db82a1" contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_099914591956455cb52aa6ed177100ff" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_e2e4ea92d5a14375a7bb43878a46fc3d" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Relinquishment of stock awards and deferred stock units to pay withholding taxes</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" id="Fact_5fbe6d225c544664aee772d4ba7deb10" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">13,652</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_e71955dfa99b45479d2166b37e4dbde0" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_337dc3dab8694bca85a6ac0fa2ab8080" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">87</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_84b213cf6e0e48e29baaf6907c73175b" contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_03ade248eed648b9a1933180d9fabba8" contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_f9781567814245e0bb9a14de322e4982" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_8263c6cc777b49958818e3d25c1b83f5" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">87</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Share-based compensation expense</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_5e6483a656a44093bfb09fee67d530dc" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_09129e578b1e4d958fbd2521380c84fd" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">860</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_d16ff05b84494c45bf9b098808d23023" contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_33a70220c26e4c9daf33c8cf6d2ae19c" contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_4767f28956ad4aa186febde0a33dbe60" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_f3e55871cf0e4e6b827726daa1319cf4" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">860</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign currency translation adjustment, net of tax</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_f7a9ec93ead54df0a7f7bfe3a228ebe2" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_7786ff55e8544d129295ae0ae52cc832" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_e26c4b92e48b4913a2f72723cbb90e21" contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_d6ae3364a2ab4fc4b1075b4beb75aff1" contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_afb2c6aa82544e9cadebd4344921135d" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_fc159d968d3e4c8eb7d4a34ab437a730" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net income<br/>
            </div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_14473db1f9f040c6a44da18397d6abe1" contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_579cd1e67f754544ba3e2fc8b55f8e71" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_3bfbf9c358ea46418ad7127159fd32df" contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,748</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_10bfeffbd8544efcaf6e651bc0a11051" contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_528c65a63c2046dab351de4e2dfa9083" contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e7274cb65f8448c79a2b8e108281e293" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,748</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Balance, December 31, </span><span style="text-indent: 0pt;">2023</span></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_b2e691f5a8d246b2ae02fb6e0468a7f6" contextRef="c20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">9,958,811</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_f7964df9451b4bcfb09661cc9eab0c92" contextRef="c20231231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">140</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_af99d8848beb41f1b4d37d835ce467c6" contextRef="c20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">57,055</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_49cc3d31aa88428e89917b05256d7325" contextRef="c20231231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,378</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_a8edee4d299246f0a1d4a330e732da43" contextRef="c20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
            </div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_58ccab7b91b74bf29e11f392975d87eb" contextRef="c20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">49</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_e44455ba63bf4f73807ad0c42af22e96" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">39,414</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Issuance of common stock on restricted stock units</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" id="Fact_d5ada3917d014465968799c8e3858a99" contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">74,995</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_daf0e4d4351f4d908b503f546a725b48" contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_016e7157f7d248cf86f80987e8ba8ce5" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_44d655c1e3184294986ac9bcc716298a" contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_e11e3b7527ed49e69ad374dd6954a33e" contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_fe9b5977b7af411d95294c1d2e5fbefa" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_31ba323112d145e2ab4a2460e6ab1162" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Relinquishment of stock awards and deferred stock units to pay withholding taxes</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" id="Fact_8c9a8e19373546a486738b1042074ffe" contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">10,599</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_511d13f11300477ab9f5a29425daea21" contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_99743025ab934ccaac9b3972d3124a1d" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">71</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_a1d19936937c46ffb8b4f5734c5a0029" contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_55a0530790e049a2a3d0324da96cdc7a" contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_b2d746ee52354c0ab266b063d859117e" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_932fae7ec5e84fc0a3e63922fc5bf2ce" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">71</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Share-based compensation expense</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_c4b56e451ef14c218d9f059ca23ef383" contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_fd4bb400687345a0bdfd9b51ee03f3b5" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,157</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_d59aa3ee2e8643dcb39959eebbd20ba3" contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_c4485af82f984ffaa3365c7c4c6c76a0" contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_df297503b283431cb5b24207fd52aa31" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_ea4e768ad6a84c6f8dc488667b4934d8" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,157</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign currency translation adjustment, net of tax</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_508f40c9e3a24dd5962aca099499117c" contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_c92d2555fb4f4e7bb339f1a250ef4314" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_77c191a5b19d4258b379b7bf4e5dc5e1" contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_c82898ef706d470d83929ccaa6a7a6be" contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_20bed914789c481bbda12d404065ce1a" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_bd182215128641299f10e706b6069e37" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 2px; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net loss<br/>
            </div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_ca831f062d4a41dfaf5f43dc726fd168" contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_4d9c008e8d294f67a7cda50950c04b40" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_d4e9a3e2b1004b358010255a91dc3ceb" contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,863</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_926f538deeed428788ec063fb5b16646" contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_5ad72ed7e1874846bbb59a1db880164b" contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_954e697ac59642b2a0abe6e7f4417caf" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,863</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 4px; white-space: nowrap;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, December 31, <span style="text-indent: 0pt;">2024</span></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_eb423139fe6143b59010e507dee6b15c" contextRef="c20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">10,023,207</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_a334ceabef0b407f8c249d25a1572b2f" contextRef="c20241231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">141</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_6ba365bffcef4a3ebdf46328f9463c7f" contextRef="c20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">58,141</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_f2be9d52f8f2476c8f7d58bc4132291d" contextRef="c20241231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,515</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_110de951c97d48c9930bf030c6bc0cdd" contextRef="c20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_2a81968837774794a59fa58048bd6880" contextRef="c20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">54</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_8045ae1ffab048398215e51816ff1055" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30,633</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
  <div style="text-align: center;"><br/>
  </div>

  <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>

  <div><br/>
  </div>

  <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
    <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-8</span></div>

    <div class="BRPFPageBreak" style="page-break-after: always;">
      <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

    <div style="width: 100%;" class="BRPFPageHeader">
      <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

    </div>

  </div>

  <div style="width: 100%;" class="BRPFPageFooter"></div>

</div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="CashFlows"><!--Anchor--></a>TRANSACT TECHNOLOGIES INCORPORATED</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">CONSOLIDATED STATEMENTS OF CASH FLOWS</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">(in thousands)</div>

    <div style="text-align: left;"><br/>
    </div>

    <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="6">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Cash flows from operating activities:</div>
          </td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income<br/>
              </div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_2d5eb2e9232c4264b3d8fa00a565b686" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,863</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_31a382fac862431cbd03503ac68fd721" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,748</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Adjustments to reconcile net (loss) income to net cash provided by operating activities:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Share-based compensation expense</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensation" id="Fact_9ac0181595de400fa8089860ecf1956f" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,157</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensation" id="Fact_47a3f2b666f04f91add4520bab4ac1b3" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">860</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Depreciation and amortization</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DepreciationAndAmortization" id="Fact_ea0658c7def544759dbf0bf6491c013a" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,037</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DepreciationAndAmortization" id="Fact_22998a2367e545fab0bf6c9de5605a3a" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,489</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred income taxes</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_97380fed6527440c9e6c6b74f0d0b91b" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,304</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_96a20a12f132414098b0c70594e843ae" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,020</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign currency transaction losses (gains)<br/>
              </div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ForeignCurrencyTransactionGainLossUnrealized" id="Fact_c18a5fc1302449c2b423a1267907da37" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">89</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ForeignCurrencyTransactionGainLossUnrealized" id="Fact_63099241cad94149a739b8c0b021e496" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Changes in operating assets and liabilities:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accounts receivable</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsReceivable" id="Fact_8ec2b59af9f14f07bd5490cfcc3d701a" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,315</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsReceivable" id="Fact_27a5b7dc5840485faa04d34943df8dfd" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,248</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Employee retention credit receivable</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherReceivables" id="Fact_052d2dfb359f42eaaa3a59d3c10a47b7" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherReceivables" id="Fact_573838b9ca2f49209b015aa5d69605d5" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,500</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Inventories</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_66a8089ee4a0497a9466e1702d6d25a3" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,607</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_f2a1bb09e7ab4932bd2825a54b67b8da" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,658</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Prepaid income taxes</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidTaxes" id="Fact_7a10f902fbc44c7cb5005a1cada60859" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">80</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidTaxes" id="Fact_a4c454fac6f94700aa94714c8e230be4" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">322</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other current and long-term assets</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" id="Fact_ea7d640db3f54195a04da51f4ef032bf" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">43</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" id="Fact_19888de1a0b143e794b3928ea73932a1" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accounts payable</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayable" id="Fact_cc3dbf4403af48fd9ccf21839dbbdcf0" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">149</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayable" id="Fact_d7b707ef3f484f6f9ad8d8e74fd835ed" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,988</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accrued liabilities and other liabilities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" id="Fact_ec2af548a4b64bfa85f96d7867e5eb81" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,811</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" id="Fact_1e639b26d0fe48c3a42de2f95164a69e" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">650</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net cash provided by operating activities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" id="Fact_9223a90022924302b2fa0c0c5dba5a2b" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,861</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" id="Fact_1568cdbf273e400991b754dcdbf83487" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,507</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Cash flows from investing activities:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Capital expenditures</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" id="Fact_d66af15cd3d54ee0ae1e068645372512" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">322</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" id="Fact_1dd7a897f50a48f788b8866c94fb2f50" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">901</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net cash used in investing activities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" id="Fact_a4ff8854be624d89a469220afaf833e5" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">322</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" id="Fact_0b1fe2d9a48747748af1a59daf66e256" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">901</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Cash flows from financing activities:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Proceeds from bank borrowings</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromLinesOfCredit" id="Fact_86de16550a094d6eb00603aa5fd0cdc0" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">750</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromLinesOfCredit" id="Fact_36e1d5ac5b4a4ddca1bc44833e8439aa" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Withholding taxes paid on stock issuance</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" id="Fact_5dc1ed4017254927873b3c3a4afff452" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">71</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" id="Fact_d9918320542b49f984273d73ab13a8da" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">87</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Payment of bank financing costs</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsOfLoanCosts" id="Fact_acad41fdd7e84da0bf1b5f877718de73" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">45</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PaymentsOfLoanCosts" id="Fact_6de3de05e1ba46fcacf49599bb2173d6" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net cash provided by (used in) financing activities</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" id="Fact_a11b1a38d1ee426aa98b833843d41b80" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">634</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" id="Fact_acef8849aa864e05b6e0c212c58ca1bc" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">87</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Effect of exchange rate changes on cash and cash equivalents</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_d39116e2836b437a95961cb2f657e2d4" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">100</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_7b65faf56381488b99d42d0a7ab2bd4e" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">144</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Increase in cash and cash equivalents</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" id="Fact_1e4d86dd412547faac7d0d8465968f63" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,073</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" id="Fact_0bb229d843a74ffa9798381275f4fbae" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,375</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Cash and cash equivalents, beginning of period</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_13f32c6074b947efb8becff4904c278c" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,321</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_e65734941c8a4dfab10893536d4e2e00" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,946</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Cash and cash equivalents, end of period</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_dfb768a9ea044a49b000b5f22e9fff3e" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,394</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_ac89d22a68ad460e9997a9a2b667629d" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,321</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Supplemental cash flow information:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Interest paid</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InterestPaidNet" id="Fact_79777676408142fca66ebad738aada05" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">272</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InterestPaidNet" id="Fact_a89f93b7bc40416baef76dcd88f608ce" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">268</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: rgb(204, 238, 255);">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Income taxes paid</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxesPaid" id="Fact_c47161ec0c7e4714aa6fb082d139dc42" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">499</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxesPaid" id="Fact_fa515421eb0d4fac8baa025de32dd4b0" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">160</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Non-cash capital expenditures<br/>
              </div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" id="Fact_1255971997634ab895c16e57c6817632" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" id="Fact_6467a61154ba454b8b2cb8f0f6d6852a" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">23</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
    <div style="text-align: left;"><br/>
    </div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>

    <div><br/>
    </div>

    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-9</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <div style="width: 100%;" class="BRPFPageFooter"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"><a id="Notes"><!--Anchor--></a>TRANSACT TECHNOLOGIES INCORPORATED</div>

    <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</div>

    <div><br/>
    </div>


    <ix:nonNumeric name="us-gaap:NatureOfOperations" id="Text_51fc270145224180b8ac33ab40af309e" contextRef="c20240101to20241231" escape="true" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">1. Description of business</div>
</ix:nonNumeric>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c1" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c2">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">TransAct Technologies Incorporated (together with its subsidiaries, &#8220;TransAct,&#8221; the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;our&#8221;), which has its headquarters in
      Hamden, Connecticut and its primary operating facility in Ithaca, New York, operates in <ix:nonFraction name="us-gaap:NumberOfOperatingSegments" id="Fact_fbda6c77376c44ac84406e6077c71128" contextRef="c20240101to20241231" unitRef="U004" decimals="INF" scale="0" format="ixt-sec:numwordsen">one</ix:nonFraction> operating segment: software-driven technology
      and printing solutions for high growth markets including food service technology, casino and gaming and &#8220;point of sale&#8221; (&#8220;POS&#8221;) automation markets.&#160; Our solutions are designed from the ground up based on market and customer requirements and are sold
      under the BOHA!<sup>TM</sup>, AccuDate&#8482;, Epic, Ithaca&#174;, and EPICENTRAL<sup>&#174;</sup> product brands.&#160; We sell our products to original equipment manufacturers, value-added resellers, select distributors, and directly to end-users.&#160; Our product
      distribution spans across the Americas, Europe, the Middle East, Africa, Asia, Australia, New Zealand, the Caribbean Islands and the South Pacific. TransAct also provides world-class service, spare parts, accessories and printing supplies to its
      growing worldwide installed base of products.&#160; We also generate revenue from the after-market side of the business, providing printer and terminal service, consumables and spare parts in addition to revenue from our <ix:nonFraction name="tact:NumberOfSoftwareSolutions" id="Fact_585d0ad6f3154607b384cba8094d21f6" contextRef="c20241231" unitRef="U005" decimals="INF" scale="0" format="ixt-sec:numwordsen">two</ix:nonFraction> software solutions; (i) our line of BOHA! software applications used to automate the back-of-house operations of restaurants, convenience stores and
      food service operators and (ii) the EPICENTRAL Print System (&#8220;EPICENTRAL&#8221;), that enables casino operators to create promotional coupons and marketing messages and print them in real time at the slot machine.</div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c2" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c3">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <span style="font-size: 10pt; font-family: 'Times New Roman';"><br/>
      </span></div>
</ix:continuation>
    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
      <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c3" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c4">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">After strong demand during most of 2023 due in part to our primary competitor&#8217;s struggle to deliver products in the face
        of supply chain constraints, in late 2023, we began to see indications of a temporary slowdown in demand in the casino and gaming market, as customers that had built up excess inventory due to supply chain concerns advised us that they would
        temporarily reduce orders until their stock normalized. This slowdown impacted our results in the fourth quarter of 2023 and during the year ended December 31, 2024. After reviewing whether conditions and/or events raise substantial doubt about our
        ability to meet future financial obligations over the 12 months following the date on which the Consolidated Financial Statements included in this Annual Report on Form 10-K (this &#8220;Form 10-K&#8221;) were issued, including consideration of the actions
        taken to manage expenses and liquidity, we believe that our net cash to be provided by operations combined with our cash and cash equivalents and borrowing availability under our revolving credit facility will provide sufficient liquidity to fund
        our current obligations, capital spending, and working capital requirements and to comply with the financial covenants of our credit facility over at least 12 months following such issuance date.</div>
</ix:continuation>
    </div>

    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c4" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c5">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </span></div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c5" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c6">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Use of Assumptions and Estimates</div>
</ix:continuation><ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c6" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c7">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span>
     <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c7" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c8">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
      <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c8" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c9">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;">Management&#8217;s belief that the Company will
            be able to fund its planned operations over the 12 months following the date on which the Consolidated Financial Statements were issued is based on assumptions which involve significant judgment and estimates of future revenues, inflation,
            interest rates, capital expenditures and other operating costs. Our current assumption is that consumer traffic will continue to remain strong ay casinos and restaurants during 2025. We cannot predict the ultimate impact of the current economic
            environment, including inflation, interest rates and supply chain disruptions on our customers, which may impact sales. We believe that we are positioned to withstand the impact of any potential economic downturn and we would be able to take
            additional financial and operational actions to cut costs and/or increase liquidity.</span> </span></div>
</ix:continuation><ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c9" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c10">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span>
       <br/></div>
</ix:continuation>
      <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c10" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c11">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">In addition, the presentation of the accompanying audited Consolidated Financial Statements requires us to make estimates
        and judgments that affect the reported amounts of assets, liabilities, revenue and expenses, and the disclosure of contingent assets and liabilities. Our estimates include those related to revenue recognition, accounts receivable, inventory
        obsolescence, goodwill and intangible assets, the valuation of deferred tax assets and liabilities, depreciable lives of equipment, share-based compensation and contingent liabilities. We base our estimates on historical experience and on various
        other assumptions that we believe to be reasonable under the circumstances. Actual results could differ from those estimates used.</div>
</ix:continuation>
      <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c11" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c12">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></div>

    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c12" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c13">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c13" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c14">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c14" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c15">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Smaller Reporting Company</div>
</ix:continuation><ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c15" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c16">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span>
     <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c16" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c17">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">As a smaller reporting company, as defined in Item 10(f)(1) of Regulation S-K, we may choose to prepare our disclosures relying on certain scaled
      disclosure requirements for smaller reporting companies in Regulation S-K and in Article 8 of Regulation S-X.</div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c17" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c18">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c18" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c19">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c19" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c20">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c20" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c21">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The scaled disclosure requirements for smaller reporting companies permit us (i) to include less extensive narrative disclosure than required of other
      reporting companies, particularly in the description of executive compensation in our proxy statement and (ii) to provide audited financial statements for two fiscal years in our Form 10-K, in contrast to other reporting companies, which must provide
      audited financial statements for three years.</div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c21" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c22">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c22" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c23">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c23" continuedAt="Text_9a01b9cf9d7f4760ba9e5e418a1b439c24">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_9a01b9cf9d7f4760ba9e5e418a1b439c24">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">We will cease to be a smaller reporting company if we have (i) equal to or greater than $250 million in market value of our shares held by non-affiliates as of the last
        business day of our second fiscal quarter, (ii) equal to or greater than $100 million in annual revenue for the most recent fiscal year or (iii) less than $100 million in annual revenue for the most recent fiscal year and the market value of our
        shares held by non-affiliates exceeds $700 million as of the last business day of our second fiscal quarter.</span></div>
</ix:continuation>
<div>
     <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

    <div><br/>
    </div>

    <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-10</span></div>

      <div class="BRPFPageBreak" style="page-break-after: always;">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <div style="width: 100%;" class="BRPFPageFooter"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" id="Text_70fcc5388f9046ea8fc8ef8fad011540" contextRef="c20240101to20241231" escape="true" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff191">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">2. Summary of significant accounting policies</div>
</ix:nonNumeric>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff191" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff192">
<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff192" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff193"><ix:nonNumeric name="us-gaap:ConsolidationPolicyTextBlock" id="Text_2d293472d15041ebbc472574f55ddd17" contextRef="c20240101to20241231" escape="true" continuedAt="Text_2789304b97e243b7b290701b59b3a2391">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Principles of consolidation: </span>The accompanying Consolidated Financial Statements include the
      audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. </div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff193" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff194"><ix:continuation id="Text_2789304b97e243b7b290701b59b3a2391" continuedAt="Text_2789304b97e243b7b290701b59b3a2392">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <div>
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff194" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff195"><ix:continuation id="Text_2789304b97e243b7b290701b59b3a2392">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Certain amounts for prior years have been reclassified to conform to the current year presentation.</div>
</ix:continuation></ix:continuation>
       </div>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff195" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff196">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff196" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff197"><ix:nonNumeric name="us-gaap:UseOfEstimates" id="Text_b1b972a8872d4c509b46c4009efc9793" contextRef="c20240101to20241231" escape="true">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Use of estimates</span><span style="font-weight: bold;">:</span> The preparation of Consolidated Financial
      Statements in conformity with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and
      disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff197" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff198">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff198" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff199"><ix:nonNumeric name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="Text_0e53aba468e44a79aa7368b3cac37178" contextRef="c20240101to20241231" escape="true">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Cash and cash equivalents</span><span style="font-weight: bold;">:</span> We consider all highly
      liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff199" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1910">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1910" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1911"><ix:nonNumeric name="us-gaap:TradeAndOtherAccountsReceivablePolicy" id="Text_771b1dfd57794242a8fbaa089ec08b18" contextRef="c20240101to20241231" escape="true" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43791">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>
</ix:nonNumeric></ix:continuation>
    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1911" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1912"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43791" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43792">
<div style="text-align: justify;"><span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;">Accounts receivable and credit losses</span><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">: The Company records accounts receivable when the right to consideration becomes
          unconditional. We establish an allowance for expected credit losses to ensure trade receivables are valued appropriately. </span> </div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1912" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1913"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43792" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43793">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><br/>
        </span> </div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1913" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1914"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43793" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43794">
<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"> </span></div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1914" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1915"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43794" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43795">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">We are exposed to credit losses primarily through our net sales of products and services to our customers which are recorded as Accounts Receivable, net on the
        Consolidated Balance Sheets. We evaluate each customer&#8217;s ability to pay through assessing customer creditworthiness, historical experience and current economic conditions through a reasonable forecast period. Factors considered in our evaluation of
        assessing collectability and risk include: underlying value of any collateral or security interests, significant past due balances, historical losses and existing economic conditions including country and political risk. There can be no assurance
        that actual results will not differ from estimates or that consideration of these factors in the future will not result in an increase or decrease to the allowance for credit losses. We may require collateral or prepayment to mitigate credit risk.</div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1915" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1916"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43795" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43796">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"> <br/>
      </div>
</ix:continuation></ix:continuation>
      <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">
        <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1916" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1917"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43796" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43797">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We estimate expected credit losses of financial assets with similar risk characteristics. We determine an asset is impaired when our assessment identifies there is a
          risk that we will be unable to collect amounts due according to the contractual terms of the agreement. We monitor our ongoing credit exposure through reviews of customer balances against contract terms and due dates, current economic conditions
          and dispute resolution. Estimated credit losses are written off in the period in which the financial asset is no longer collectible.</div>
</ix:continuation></ix:continuation>
        <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1917" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1918"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43797" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43798">
<div style="font-family: 'Times New Roman';">&#160;</div>
</ix:continuation></ix:continuation>
      </div>

      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1918" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1919"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43798" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc43799">
<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"> </span></div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1919" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1920"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc43799" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc437910"><ix:nonNumeric name="us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" id="Text_a14c9af619084351b73446a5d2ba6270" contextRef="c20240101to20241231" escape="true" continuedAt="Text_da79af385f0b47acaff18ba2e45d14e91">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"> <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span> </div>
</ix:nonNumeric></ix:continuation></ix:continuation>
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1920" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1921"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc437910" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc437911"><ix:continuation id="Text_da79af385f0b47acaff18ba2e45d14e91" continuedAt="Text_da79af385f0b47acaff18ba2e45d14e92">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"><span style="font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The following table summarizes the activity
          recorded in the allowance for expected credit losses related to accounts receivable:</span></div>
</ix:continuation></ix:continuation></ix:continuation>
    </div>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1921" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1922"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc437911" continuedAt="Text_003f22f16cfe4ba889313ad6bfdc437912"><ix:continuation id="Text_da79af385f0b47acaff18ba2e45d14e92" continuedAt="Text_da79af385f0b47acaff18ba2e45d14e93">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1922" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1923"><ix:continuation id="Text_003f22f16cfe4ba889313ad6bfdc437912"><ix:continuation id="Text_da79af385f0b47acaff18ba2e45d14e93">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Years Ended December 31,</span></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_fd597c40dfdf4fbe8b4e71cda452e676" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">768</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_1c6e4193e4424a21ace8f3e1786d629e" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">351</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Additions charged to costs and expenses</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProvisionForDoubtfulAccounts" id="Fact_f1e1da0156dc419fbe4f97fcdfc75d30" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProvisionForDoubtfulAccounts" id="Fact_04901ed4c4e74a9ca899ee62f963994c" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">606</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deductions</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" id="Fact_43ec5df03304436f9ca0b8723d7b2f16" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">294</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" id="Fact_a83a0e74d60748669338113ac136eb6d" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">189</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_56c4b633d62040128b728458738a28ce" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">474</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_682cbff586f640a089844f53806ae20f" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">768</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1923" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1924">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">   </span></div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1924" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1925">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1925" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1926"><ix:nonNumeric name="us-gaap:InventoryPolicyTextBlock" id="Text_cbf9ab1a6272485593a81172e5594a9f" contextRef="c20240101to20241231" escape="true">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Inventories:</span> Inventories are stated at the lower
        of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completion, disposal and transportation, historical usage and estimates of future
        demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.</span> </div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1926" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1927">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
      </span></div>
</ix:continuation>

    <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="Text_887707febec74b0aae4dcd2b02299533" contextRef="c20240101to20241231" escape="true"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1927" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1928">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Fixed assets:</span> Fixed assets are stated at cost.&#160; Depreciation is recorded using the
      straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_016d887912e74a3d8c6da7613da6117d" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_ToolsDiesAndMoldsMember" format="ixt-sec:durwordsen">five years</ix:nonNumeric>; machinery and equipment is <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_941088237d1c4105b2103e5790fac76f" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember" format="ixt-sec:durwordsen">ten years</ix:nonNumeric>; furniture and office equipment is <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_259b5ee1928e4c7f8dea7974adf416da" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">five years</ix:nonNumeric>
      to <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_94d253879d4c4b909ed6434aca846e8b" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">ten years</ix:nonNumeric>; and computer software and equipment is <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_b45d06627b124d49a592d77bad2718b6" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">three years</ix:nonNumeric> to <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_625baa09e2504074b099367b3fe536c1" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">seven years</ix:nonNumeric>.&#160; Leasehold improvements are amortized over the shorter of the term of the
      lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is
      recognized.&#160; Depreciation expense was $<ix:nonFraction name="us-gaap:Depreciation" id="Fact_72f49060245c45af8efee32d099a3c0b" contextRef="c20240101to20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.9</ix:nonFraction> and $<ix:nonFraction name="us-gaap:Depreciation" id="Fact_b7d0056b36c34ed7a432052632fc1cf3" contextRef="c20230101to20231231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.3</ix:nonFraction> million in 2024 and 2023, respectively.</div>
</ix:continuation></ix:nonNumeric>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1928" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1929">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div style="width: 100%;" class="BRPFPageFooter"></div>

      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-11</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1929" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1930"><ix:nonNumeric name="us-gaap:LesseeLeasesPolicyTextBlock" id="Text_3b66bdb6653c45f5890204e3efcb6f7b" contextRef="c20240101to20241231" escape="true" continuedAt="Text_dde7f85636dd4ac9946c2e4b79a543261">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Leases:</span> We account for leases in accordance with ASC 842, &#8220;Leases&#8221; (&#8220;ASC 842&#8221;), which requires lessees to apply a
      dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on
      an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12
      months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as
      financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1930" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1931"><ix:continuation id="Text_dde7f85636dd4ac9946c2e4b79a543261" continuedAt="Text_dde7f85636dd4ac9946c2e4b79a543262">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1931" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1932"><ix:continuation id="Text_dde7f85636dd4ac9946c2e4b79a543262" continuedAt="Text_dde7f85636dd4ac9946c2e4b79a543263">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We elected certain practical expedients available under ASC 842 upon adoption. We applied the practical expedient for short-term leases. We have
      lease agreements that include lease and non-lease components, and we did not elect the practical expedients to combine these components for any of our leases.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1932" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1933"><ix:continuation id="Text_dde7f85636dd4ac9946c2e4b79a543263" continuedAt="Text_dde7f85636dd4ac9946c2e4b79a543264">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1933" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1934"><ix:continuation id="Text_dde7f85636dd4ac9946c2e4b79a543264" continuedAt="Text_dde7f85636dd4ac9946c2e4b79a543265">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing or sales-type
      leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#8220;Right-of-use assets, net&#8221; and &#8220;Lease liabilities&#8221; in our Consolidated Balance Sheets.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1934" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1935"><ix:continuation id="Text_dde7f85636dd4ac9946c2e4b79a543265" continuedAt="Text_dde7f85636dd4ac9946c2e4b79a543266">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1935" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1936"><ix:continuation id="Text_dde7f85636dd4ac9946c2e4b79a543266" continuedAt="Text_dde7f85636dd4ac9946c2e4b79a543267">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease
      payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1936" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1937"><ix:continuation id="Text_dde7f85636dd4ac9946c2e4b79a543267" continuedAt="Text_dde7f85636dd4ac9946c2e4b79a543268">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1937" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1938"><ix:continuation id="Text_dde7f85636dd4ac9946c2e4b79a543268">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company
      determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease
      right of use asset excludes lease incentives. Our leases have remaining lease terms of <ix:nonNumeric name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" id="Fact_afc41582224040fb9724731c26103f66" contextRef="c20241231_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">one year</ix:nonNumeric> to <ix:nonNumeric name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" id="Fact_ed5c6205cbc04b4a93962956b87bda92" contextRef="c20241231_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">three years</ix:nonNumeric>, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets
      and liabilities reflect only the options we are reasonably certain that we will exercise.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1938" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1939">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
      </span></div>
</ix:continuation>

    <ix:nonNumeric name="us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock" id="Text_c5fd443adfea4a8dbb4ca3601125da2b" contextRef="c20240101to20241231" escape="true" continuedAt="Text_087d852da88142a197206aa707d9616d1"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1939" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1940">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Goodwill and Intangible assets</span><span style="font-weight: bold;">:</span> We acquire
      businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#8220;Goodwill,&#8221;
      acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test
      to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to
      first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant
      events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test
      is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#8217;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may
      trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired
      assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment
      when appropriate. All of our finite lived intangible assets are fully amortized as of December 31, 2024.</div>
</ix:continuation></ix:nonNumeric>
    <ix:continuation id="Text_087d852da88142a197206aa707d9616d1" continuedAt="Text_087d852da88142a197206aa707d9616d2"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1940" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1941">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_087d852da88142a197206aa707d9616d2"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1941" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1942">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">As of December 31, 2024, we have determined that <ix:nonFraction name="us-gaap:GoodwillAndIntangibleAssetImpairment" id="Fact_9ad09064a20047d3b047578cd768327f" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt-sec:numwordsen">no</ix:nonFraction>
      goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2024 when our annual review for impairment was performed.</div>
</ix:continuation></ix:continuation>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1942" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1943">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div style="width: 100%;" class="BRPFPageFooter"></div>

      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-12</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>


    <ix:nonNumeric name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="Text_54c32f8a991c4541a5a8a27b638619ea" contextRef="c20240101to20241231" escape="true" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc1"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1943" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1944">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Revenue recognition:</span> We account for revenue in accordance with ASC Topic 606: Revenue
      from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance
      obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#8217;s transaction price is allocated to each distinct performance
      obligation and recognized as revenue when, or as, the performance obligation is satisfied.</div>
</ix:continuation></ix:nonNumeric>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc1" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc2"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1944" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1945">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc2" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc3"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1945" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1946">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the
      customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction
      price utilizing either the &#8220;expected value&#8221; method or the &#8220;most likely amount&#8221; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#8217;s judgment, it is probable
      that a significant future reversal of cumulative revenue under the contract will not occur.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc3" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc4"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1946" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1947">
<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc4" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc5"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1947" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1948">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a
      point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and
      gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to
      the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#8217;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal
      acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as
      control of the product is transferred to the customer and our performance obligation is completed.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc5" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc6"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1948" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1949">
<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc6" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc7"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1949" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1950">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it
      is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our
      food service technology terminals and maintenance agreements (including free <ix:nonNumeric name="tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" id="Fact_f75b41ff9d3b485bb99232ba8d83feb0" contextRef="c20240101to20241231" format="ixt-sec:durwordsen">one-year</ix:nonNumeric> maintenance received by customers upon completion of
      EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to
      the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract
      period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc7" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc8"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1950" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1951">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc8" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc9"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1951" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1952">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#8220;standalone selling price&#8221; method to
      determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price
      discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment
      approach.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc9" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc10"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1952" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1953">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc10" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc11"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1953" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1954">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period
      of the cost to obtain a contract is less than 12 months.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc11" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc12"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1954" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1955">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation></ix:continuation>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div style="width: 100%;" class="BRPFPageFooter"></div>

      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-13</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1955" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1956"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc12" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc13"><ix:nonNumeric name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="Text_6ec54f25df26416e9ccd831af7f9af1f" contextRef="c20240101to20241231" escape="true" continuedAt="Text_5374c2e26f794a6a8dc4053a3ea5eab41">
<div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Disaggregation of revenue</div>
</ix:nonNumeric></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1956" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1957"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc13" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc14"><ix:continuation id="Text_5374c2e26f794a6a8dc4053a3ea5eab41" continuedAt="Text_5374c2e26f794a6a8dc4053a3ea5eab42">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our
      revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.</div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1957" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1958"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc14" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc15"><ix:continuation id="Text_5374c2e26f794a6a8dc4053a3ea5eab42" continuedAt="Text_5374c2e26f794a6a8dc4053a3ea5eab43">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1958" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1959"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc15" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc16"><ix:continuation id="Text_5374c2e26f794a6a8dc4053a3ea5eab43" continuedAt="Text_5374c2e26f794a6a8dc4053a3ea5eab44">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31, 2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;<span style="font-style: italic;">(In thousands)</span></div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Food service technology</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_82f8bf1b074a4a01900dd2c81f3e8558" contextRef="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,719</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_a106c59b69fa4a558922a60b7235be15" contextRef="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,382</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_c69deaf0bdbe4577acecc39b12f52bcd" contextRef="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">16,101</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%;">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">POS automation</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_780eb84280984f54beeddf18bb91de33" contextRef="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,361</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_4640362b16ea44038d761d810c0f5d6d" contextRef="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_1e230aad8827476bab56ecf15f312614" contextRef="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,361</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Casino and gaming</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_f464bada513e4cc3a1e7d513cbc1d2c0" contextRef="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,522</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_d6a1c7141bd54efcb30a25a5cbb7d723" contextRef="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,826</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_c43bb8afebb5424990d4562709f201b4" contextRef="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">20,348</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 2px;">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">TransAct Services Group</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_cdd36a2fd7074817a4f899715e2e57c9" contextRef="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,883</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_4241bd0ba7704a2dbd347ce8393cc8ae" contextRef="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">691</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_a9388e5410a44855ba28725e038f7dad" contextRef="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,574</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total net sales</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_64691ef178424bda8acc0cbf327d214c" contextRef="c20240101to20241231_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">33,485</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_8067bd617ceb4300bc40146946638f3a" contextRef="c20240101to20241231_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,899</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_a88bad055097443496a45cd604139ea5" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">43,384</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1959" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1960"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc16" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc17"><ix:continuation id="Text_5374c2e26f794a6a8dc4053a3ea5eab44" continuedAt="Text_5374c2e26f794a6a8dc4053a3ea5eab45">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1960" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1961"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc17" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc18"><ix:continuation id="Text_5374c2e26f794a6a8dc4053a3ea5eab45">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Year Ended December 31, 2023</span></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">&#160;</span><span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;">(In thousands)</span></div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Food service technology</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_1dbd7691ad564190889c5dd46acb596c" contextRef="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,159</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_16ca79227764406381ae1ca35543646f" contextRef="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,149</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_2a1e3a730b1d491dbc50e4170a270cd1" contextRef="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">16,308</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%;">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">POS automation</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_a0cccb1a702e49e28867b208d756d253" contextRef="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,805</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_593c9db47fed457484f792c6d552fa53" contextRef="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">117</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_d009b572f4604282a4631efe37919347" contextRef="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,922</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Casino and gaming</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_dbdae0dcead6480eb579dda5fb747a64" contextRef="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">28,715</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_ab0e69e154e94a4b85be4e0bf99e150e" contextRef="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,477</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_50c84947e86e475a8a0694f48c4bf301" contextRef="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">41,192</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 2px;">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">TransAct Services Group</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_72313bbbc66049fa9f35c09293d76295" contextRef="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,381</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_8000e1bfea534635ab759460fd08a49d" contextRef="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">828</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_cdbf645c6e234238a8c04402f45ed26f" contextRef="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,209</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total net sales</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_539169f0f0f442008f72531f6c0d5a7e" contextRef="c20230101to20231231_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">58,060</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_73b89478cf9c4c97abdbe43aea6d466c" contextRef="c20230101to20231231_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,571</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_892955cea8ec47b9b8dfb0d4944473fd" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">72,631</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation></ix:continuation>
    <div style="text-align: left; font-family: 'Times New Roman'; font-size: 12pt;">
      <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc18" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc19"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1961" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1962">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </span> </div>
</ix:continuation></ix:continuation>
    </div>

    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc19" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc20"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1962" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1963">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Contract balances</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc20" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc21"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1963" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1964">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the
      customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included
      within &#8220;Accounts Receivable, net&#8221; and &#8220;Other Assets&#8221; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc21" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc22"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1964" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1965">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc22" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc23"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1965" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1966">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#8220;Accrued Liabilities&#8221; in current
      liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160;
      Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid
      software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2024, we recognized revenue of $<ix:nonFraction name="tact:ContractWithCustomerRevenueRecognized" id="Fact_3e2c6704b26f4179890ebba0f33abd2a" contextRef="c20240101to20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.1</ix:nonFraction> million related to our contract liabilities as of December 31, 2023.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc23" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc24"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1966" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1967">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1967" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1968"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc24" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc25"><ix:nonNumeric name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="Text_0c495f37a8194cab9d4cd8868ba7bdc6" contextRef="c20240101to20241231" escape="true" continuedAt="Text_a0f4fa555b4947549ad07ec47ea891641">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Net contract (liabilities) assets consist of the following:</div>
</ix:nonNumeric></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1968" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1969"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc25" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc26"><ix:continuation id="Text_a0f4fa555b4947549ad07ec47ea891641" continuedAt="Text_a0f4fa555b4947549ad07ec47ea891642">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1969" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1970"><ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc26" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc27"><ix:continuation id="Text_a0f4fa555b4947549ad07ec47ea891642">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;<span style="font-style: italic;">(In thousands)</span></div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Unbilled receivables, current</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerAssetNetCurrent" id="Fact_9597b1a7bb274af882d17c4474a7c4ba" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">106</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerAssetNetCurrent" id="Fact_6a21a81dcac646bc892cc2516a27ae8f" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">145</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Unbilled receivables, non-current</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerAssetNetNoncurrent" id="Fact_48f6e264d055406cb3da4419050606fe" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerAssetNetNoncurrent" id="Fact_91dc3a429140433d989f2b789fc19047" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">120</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Customer pre-payments</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" id="Fact_9e759f477ad44d2e9ea667bb29494472" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">164</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" id="Fact_7cda0f6fe1554c3097e98b1dbf8cc616" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">155</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, current</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" id="Fact_ba6a343970c241f2b81fe796b864ed81" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,107</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" id="Fact_c0533264b5304449a98c94404701430c" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,079</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, non-current</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityNoncurrent" id="Fact_e6df83befa9e4e8aafa9c66fca945972" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">246</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityNoncurrent" id="Fact_26d5e42544934b3895f89a5498a06db4" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">209</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Net contract (liabilities) assets</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="tact:ContractWithCustomerAssetLiabilityNet" id="Fact_8a7fd768050e4d5dac9999d968d8f387" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,379</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="tact:ContractWithCustomerAssetLiabilityNet" id="Fact_3d7dff5498d04ece8f0c0ed353246817" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,178</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation></ix:continuation>
    <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 12pt;">
      <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc27" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc28"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1970" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1971">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </span> </div>
</ix:continuation></ix:continuation>
    </div>

    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc28" continuedAt="Text_f5024fffc36f4e8088cdca782dc4c9dc29"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1971" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1972">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Remaining performance obligations</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_f5024fffc36f4e8088cdca782dc4c9dc29"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1972" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1973">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our
      customer.&#160; As of December 31, 2024, the aggregate amount of the transaction price allocated to remaining performance obligations was $<ix:nonFraction name="us-gaap:RevenueRemainingPerformanceObligation" id="Fact_dcc4f5ab074b406185ef293d66e40e37" contextRef="c20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">6.3</ix:nonFraction> million. The Company expects to recognize revenue on $<ix:nonFraction name="us-gaap:RevenueRemainingPerformanceObligation" id="Fact_71ad553f38994445baec690199987390" contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">6.0</ix:nonFraction>
      million of its remaining performance obligations within the next <ix:nonNumeric name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Fact_bfda06b3aabf433db4805564dfbed3a5" contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member" format="ixt-sec:durmonth">12</ix:nonNumeric> months following December 31, 2024, $<ix:nonFraction name="us-gaap:RevenueRemainingPerformanceObligation" id="Fact_b600a093c9454b268c878135342feac3" contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20260101Member" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million within the next <span style="-sec-ix-hidden:Fact_070b19bc2e87417485287551ea3163d4">24</span> months
      following December 31, 2024 and the&#160;<span style="-sec-ix-hidden:Fact_e37ea88e93bd42529bfb23dbe89fa89f">balance</span> of these remaining performance obligations within the next <span style="-sec-ix-hidden:Fact_f50c8aea3ef443c8a2609b35c6a05cf4">36</span> months following December 31, 2024.</div>
</ix:continuation></ix:continuation>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1973" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1974">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div style="width: 100%;" class="BRPFPageFooter"></div>

      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-14</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1974" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1975"><ix:nonNumeric name="us-gaap:ConcentrationRiskCreditRisk" id="Text_2b299792be934052a24c455928d01035" contextRef="c20240101to20241231" escape="true" continuedAt="Text_3c95d066b3514eb2ab13676bf4fb4dfc1">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Concentration of credit risk:</span>&#160; Financial instruments that potentially expose us to
      concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1975" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1976"><ix:continuation id="Text_3c95d066b3514eb2ab13676bf4fb4dfc1" continuedAt="Text_3c95d066b3514eb2ab13676bf4fb4dfc2">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1976" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1977"><ix:continuation id="Text_3c95d066b3514eb2ab13676bf4fb4dfc2" continuedAt="Text_3c95d066b3514eb2ab13676bf4fb4dfc3"><ix:nonNumeric name="us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" id="Text_89671cac314b4e19b53d7b979330c1ee" contextRef="c20240101to20241231" escape="true" continuedAt="Text_ac2a684aab79492fb0080295f5b369411">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Accounts receivable from customers representing 10% or more of total accounts receivable, net during the years ended December 31, 2024 and 2023 were as
      follows:</div>
</ix:nonNumeric></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1977" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1978"><ix:continuation id="Text_3c95d066b3514eb2ab13676bf4fb4dfc3" continuedAt="Text_3c95d066b3514eb2ab13676bf4fb4dfc4"><ix:continuation id="Text_ac2a684aab79492fb0080295f5b369411" continuedAt="Text_ac2a684aab79492fb0080295f5b369412">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1978" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1979"><ix:continuation id="Text_3c95d066b3514eb2ab13676bf4fb4dfc4" continuedAt="Text_3c95d066b3514eb2ab13676bf4fb4dfc5"><ix:continuation id="Text_ac2a684aab79492fb0080295f5b369412" continuedAt="Text_ac2a684aab79492fb0080295f5b369413">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
          </td>

    <td valign="bottom" colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
              <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
                <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Light &amp; Wonder Gaming, Inc.</div>
              </div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_f2f46cbeb66d4420aa93f1ebba485689" contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">15</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_31f24c9d4c5d4c71b732227b6b835706" contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">3</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International Gaming Technology (&#8220;IGT&#8221;) </div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_9576c19c575742e59fe0a9f24d3e9585" contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">6</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_c240d5e245e94e41b86d0de94fe5d2f1" contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">28</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1979" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1980"><ix:continuation id="Text_3c95d066b3514eb2ab13676bf4fb4dfc5" continuedAt="Text_3c95d066b3514eb2ab13676bf4fb4dfc6"><ix:continuation id="Text_ac2a684aab79492fb0080295f5b369413" continuedAt="Text_ac2a684aab79492fb0080295f5b369414">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1980" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1981"><ix:continuation id="Text_3c95d066b3514eb2ab13676bf4fb4dfc6" continuedAt="Text_3c95d066b3514eb2ab13676bf4fb4dfc7"><ix:continuation id="Text_ac2a684aab79492fb0080295f5b369414" continuedAt="Text_ac2a684aab79492fb0080295f5b369415">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Sales to customers representing 10% or more of total net sales during the years ended December 31, 2024 and 2023 were as follows:</div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1981" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1982"><ix:continuation id="Text_3c95d066b3514eb2ab13676bf4fb4dfc7" continuedAt="Text_3c95d066b3514eb2ab13676bf4fb4dfc8"><ix:continuation id="Text_ac2a684aab79492fb0080295f5b369415" continuedAt="Text_ac2a684aab79492fb0080295f5b369416">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1982" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1983"><ix:continuation id="Text_3c95d066b3514eb2ab13676bf4fb4dfc8"><ix:continuation id="Text_ac2a684aab79492fb0080295f5b369416">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
          </td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Light &amp; Wonder Gaming, Inc.</div>
          </td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_5ae99e63b4b34839a0c9bb1c66e5c611" contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">11</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">%</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_d3d7be02eacf478b98e1df33e31010dc" contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">6</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">%</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">IGT</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_159d09084fe24e2692c391b89691cb17" contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">6</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_836bb975e0534ae684689ead782c24e7" contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">15</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation></ix:continuation>
    <div style="text-align: left;">
      <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1983" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1984">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </span> </div>
</ix:continuation>
    </div>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1984" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1985"><ix:nonNumeric name="us-gaap:ResearchAndDevelopmentExpensePolicy" id="Text_e4c89041ce964f63a3ab9bd4f1a00125" contextRef="c20240101to20241231" escape="true" continuedAt="Text_808aa5f047444d84ba99874d52b388f91">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Engineering, design and product development:</span> Engineering, design and product
      development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $<ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" id="Fact_760e6ac3131740819741a6e329a14603" contextRef="c20240101to20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">7.0</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" id="Fact_d2d8751b06cc4fffa99dde65c2a42d2b" contextRef="c20230101to20231231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">9.4</ix:nonFraction> million of research
      and development expenses in 2024 and 2023,
      respectively.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1985" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1986"><ix:continuation id="Text_808aa5f047444d84ba99874d52b388f91" continuedAt="Text_808aa5f047444d84ba99874d52b388f92">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1986" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1987"><ix:continuation id="Text_808aa5f047444d84ba99874d52b388f92">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological
      feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in
      determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been
      included in cost of sales over the estimated life of the product.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1987" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1988">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1988" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1989"><ix:nonNumeric name="us-gaap:AdvertisingCostsPolicyTextBlock" id="Text_640142caf0ca49c68703632c34f3c261" contextRef="c20240101to20241231" escape="true">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Advertising:</span> Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in
      selling and marketing expense on the accompanying Consolidated Statements of Operations for 2024 and 2023 totaled $<ix:nonFraction name="us-gaap:AdvertisingExpense" id="Fact_42a6374f234346c69e5313ae45d79810" contextRef="c20240101to20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.2</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:AdvertisingExpense" id="Fact_78ecb8918ade445380617c0f38509764" contextRef="c20230101to20231231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.7</ix:nonFraction> million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1989" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1990">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1990" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1991"><ix:nonNumeric name="us-gaap:IncomeTaxPolicyTextBlock" id="Text_fec5bc44f8b047c49ba621837b28bd1b" contextRef="c20240101to20241231" escape="true">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Income taxes:</span> The income tax amounts reflected in the accompanying Consolidated Financial Statements
      are accounted for under the liability method in accordance with ASC 740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial
      statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which
      those temporary differences are expected to be recovered or settled. A valuation allowance is provided for certain deferred tax assets if it is more likely than not that the Company will not realize some portion of the deferred tax assets through
      future operations.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. See Note 11 &#8211; Income Taxes.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1991" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1992">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>

    <ix:nonNumeric name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="Text_3d89e4bf6f61475485b51bd70c83d8df" contextRef="c20240101to20241231" escape="true"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1992" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1993">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Foreign currency translation:</span> The financial position and results of operations of our
      foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been
      translated at the weighted average rate for the period, and shareholders&#8217; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#8217; equity as a cumulative
      translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated
      Statements of Operations.</div>
</ix:continuation></ix:nonNumeric>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1993" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1994">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div style="width: 100%;" class="BRPFPageFooter"></div>

      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-15</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1994" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1995"><ix:nonNumeric name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="Text_b53c3849ef1047b4a88c7708233d8454" contextRef="c20240101to20241231" escape="true" continuedAt="Text_f2d82cdbf5664e5a9b2b8dc36074c1b61">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Share-based payments:</span><span style="font-weight: bold;">&#160;</span>At December 31, 2024, we have share-based employee compensation plans, which are described more fully in Note 10 - Stock incentive plans. We account for those plans
      under the recognition and measurement principles of ASC 718, &#8220;Compensation &#8211; Stock Compensation.&#8221;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the
      employee&#8217;s requisite service period.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1995" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1996"><ix:continuation id="Text_f2d82cdbf5664e5a9b2b8dc36074c1b61" continuedAt="Text_f2d82cdbf5664e5a9b2b8dc36074c1b62">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1996" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1997"><ix:continuation id="Text_f2d82cdbf5664e5a9b2b8dc36074c1b62">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards. The key assumptions for this valuation method
      include the expected term of the option, our stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the
      determination of compensation expense.&#160; Forfeitures are recognized as they occur.</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1997" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1998">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1998" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff1999"><ix:nonNumeric name="us-gaap:EarningsPerSharePolicyTextBlock" id="Text_c2650dafd7124c12aa8a667df749323e" contextRef="c20240101to20241231" escape="true">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;"><span style="color: rgb(0, 0, 0); font-style: italic; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">Net income (loss) per share</span>:</span> We report net income or loss per share in accordance with ASC 260, &#8220;Earnings per Share (EPS).&#8221; Under this guidance, basic EPS, which excludes dilution, is computed by
      dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock
      were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore,
      these instruments are excluded from the computation of diluted EPS.&#160; See Note 12 - Earnings per share.</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff1999" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff19100">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">
      <ix:nonNumeric name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="Text_218f16b46a544c31876c9ab5e1c1bf8b" contextRef="c20240101to20241231" escape="true" continuedAt="Text_e28e12ce29234b40b3ecba3e78c344671"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff19100" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff19101">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"><span style="font-weight: bold; font-style: italic; font-family: 'Times New Roman'; font-size: 10pt;">Recently issued accounting pronouncements</span><span style="font-family: 'Times New Roman'; font-size: 10pt;">:</span></div>
</ix:continuation></ix:nonNumeric>
      <ix:continuation id="Text_e28e12ce29234b40b3ecba3e78c344671" continuedAt="Text_e28e12ce29234b40b3ecba3e78c344672"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff19101" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff19102">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
      <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">
        <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">
          <div style="text-align: justify; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">
            <ix:continuation id="Text_e28e12ce29234b40b3ecba3e78c344672" continuedAt="Text_e28e12ce29234b40b3ecba3e78c344673"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff19102" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff19103">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">On November 27, 2023, the FASB issued ASU 2023-07, <span style="font-style: italic;">Segment Reporting (Topic 280)</span>.&#160; The
              amendments improve reportable segment disclosures requirements and clarify circumstances in which an entity can disclose multiple segment measures of profit or loss, provide new segment disclosure requirements for entities with a single
              reportable segment and contain other disclosure requirements.&#160; These amendments are effective for fiscal years beginning after December 15, 2023 and for interim periods beginning after December 15, 2024. These segment disclosure requirements
              must be applied retrospectively to all periods presented in the financial statements.&#160; We adopted this standard effective January 1, 2024, and this standard did not have a material impact on the Company&#8217;s Consolidated Financial Statements. We
              have adopted this standard for our fiscal year 2024 annual financial statements and interim financial statements thereafter and have applied this standard retrospectively for all prior periods presented in the financial statements. See Note 7
              &#8211; Segment Reporting for further information.</div>
</ix:continuation></ix:continuation>
            <ix:continuation id="Text_e28e12ce29234b40b3ecba3e78c344673" continuedAt="Text_e28e12ce29234b40b3ecba3e78c344674"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff19103" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff19104">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
            </div>
</ix:continuation></ix:continuation><ix:continuation id="Text_e28e12ce29234b40b3ecba3e78c344674" continuedAt="Text_e28e12ce29234b40b3ecba3e78c344675"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff19104" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff19105">
<div>
            On December 14, 2023, the FASB issued ASU 2023-09, <span style="font-style: italic;">Income Taxes (Topic 740)</span>.&#160;&#160; This ASU requires the use of consistent categories and greater disaggregation in tax rate reconciliations and income taxes
            paid disclosures. These amendments are effective for fiscal years beginning after December 15, 2024. These income tax disclosure requirements can be applied either prospectively or retrospectively to all periods presented in the financial
            statements. We are currently evaluating the impact of adopting this standard; however, we do not expect it to have a material impact on our Consolidated Financial Statements.
            </div>
</ix:continuation></ix:continuation><ix:continuation id="Text_e28e12ce29234b40b3ecba3e78c344675" continuedAt="Text_e28e12ce29234b40b3ecba3e78c344676"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff19105" continuedAt="Text_cee62da3181d42a69b2ab6e99f32ff19106">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
              </span> </div>
</ix:continuation></ix:continuation>
            <ix:continuation id="Text_e28e12ce29234b40b3ecba3e78c344676"><ix:continuation id="Text_cee62da3181d42a69b2ab6e99f32ff19106">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">In November 2024, the FASB issued ASU 2024-03, Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40):
              Disaggregation of Income Statement Expenses. The amendments in this update require footnote disclosures on disaggregated information about specific categories underlying certain income statement expense line items that are considered
              relevant. This includes items such as the purchase of inventory, employee compensation, depreciation, and intangible asset amortization. The amendments in ASU 2024-03 are effective for fiscal years beginning after December 15, 2026. Early
              adoption is permitted. Adoption of this ASU will result in additional disclosure, but will not impact our consolidated financial position, results of operations, or cash flows.</div>
</ix:continuation></ix:continuation>

          </div>

        </div>

        </div>

    </div>

    <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:InventoryDisclosureTextBlock" id="Text_45f20a4b3277462ca95d5c449cb1d13e" contextRef="c20240101to20241231" escape="true" continuedAt="Text_25a8d9b4437d4b73832c0b0bc50365071">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">3. Inventories</div>
</ix:nonNumeric>
    <ix:continuation id="Text_25a8d9b4437d4b73832c0b0bc50365071" continuedAt="Text_25a8d9b4437d4b73832c0b0bc50365072">
<div><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_25a8d9b4437d4b73832c0b0bc50365072" continuedAt="Text_25a8d9b4437d4b73832c0b0bc50365073"><ix:nonNumeric name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="Text_acb339a4c4204e22963c053bc787167a" contextRef="c20240101to20241231" escape="true" continuedAt="Text_542e32cca04c48d8aceada12c9074d331">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of inventories are:</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_25a8d9b4437d4b73832c0b0bc50365073" continuedAt="Text_25a8d9b4437d4b73832c0b0bc50365074"><ix:continuation id="Text_542e32cca04c48d8aceada12c9074d331" continuedAt="Text_542e32cca04c48d8aceada12c9074d332">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_25a8d9b4437d4b73832c0b0bc50365074"><ix:continuation id="Text_542e32cca04c48d8aceada12c9074d332">
<table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" colspan="2">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;">Raw materials and purchased component parts</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves" id="Fact_4d12cbfbe428407f9c449011b3dc33c8" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,413</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves" id="Fact_47e73d3ee2dc4e9a894843105aa08cd6" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,432</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Finished goods</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryFinishedGoodsNetOfReserves" id="Fact_c88de9dbd0ec4fd19d1a1d8e34c2fe8c" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,748</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryFinishedGoodsNetOfReserves" id="Fact_d5dc397569624032b807348005b75eef" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,327</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_f353262acd904a98a087d93d770d74c5" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">16,161</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_e0f7031724884df78c71dc0b14c9bf4c" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,759</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <div style="text-align: left;">
      <div><br/>
      </div>

      <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-16</span></div>

        <div class="BRPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

        </div>

      </div>

      <!--PROfilePageNumberReset%Num%1%F-%%--> </div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="Text_6697c269e1004f1fa4e0153504dd2c36" contextRef="c20240101to20241231" escape="true" continuedAt="Text_47ccfaa0b0504c51848dd691be2caeab1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">4. Fixed assets, net</div>
</ix:nonNumeric>
    <ix:continuation id="Text_47ccfaa0b0504c51848dd691be2caeab1" continuedAt="Text_47ccfaa0b0504c51848dd691be2caeab2">
<div><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_47ccfaa0b0504c51848dd691be2caeab2" continuedAt="Text_47ccfaa0b0504c51848dd691be2caeab3"><ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="Text_e566dc614a22472a8bcf8ff67893e125" contextRef="c20240101to20241231" escape="true" continuedAt="Text_132c59a7913f45e9bfefc5e8af0934751">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of fixed assets, net are:</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_47ccfaa0b0504c51848dd691be2caeab3" continuedAt="Text_47ccfaa0b0504c51848dd691be2caeab4"><ix:continuation id="Text_132c59a7913f45e9bfefc5e8af0934751" continuedAt="Text_132c59a7913f45e9bfefc5e8af0934752">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_47ccfaa0b0504c51848dd691be2caeab4"><ix:continuation id="Text_132c59a7913f45e9bfefc5e8af0934752">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Tooling, machinery and equipment</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_1658eef34be247739ef96c6b748fea0e" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,828</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_60cd531c2cf9451c915577b371fe1810" contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,562</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Furniture and office equipment</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_d7e48c913c05412bb713145297d3b62a" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,078</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_ceda21c62a5a4a2a978da3dbf533f301" contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,078</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Computer software and equipment</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_69b394c88ffc43feb99188e4126160ce" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,412</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_3cc0ac654d054887a00aec1d18f75545" contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,190</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Leasehold improvements</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_69237fa9e27d4180a6d59343b7234e78" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,895</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_1bcf14d1b3f74e4594e50fd9adc5e52f" contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,895</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_e42a6bf471284f1fac2a23b46497d6d1" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">21,213</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_d694fa1b6a2a48b59acc63b6f9be3e81" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">20,725</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;">Less: Accumulated depreciation and amortization</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" id="Fact_fd6968b916c14b18875e8c31efb04857" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,468</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" id="Fact_1f4bd701c0ae49e584027b5bafb6beb9" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">18,646</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_a0cc552a1db244c2a2b5ad794bf9561a" contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,745</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_7fde3a8e5e5d4d7ab22f687fe76367ae" contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,079</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Construction in-process</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConstructionInProgressGross" id="Fact_e8aa4c8ca66040598ebbbc40a534800b" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">73</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConstructionInProgressGross" id="Fact_03d228a086034663ac57eaf57f639725" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">342</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_b480489992a242c989fa48cd436b6ef6" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,818</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_71013c23d53f4ddba001b064e9e25a52" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,421</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

    <div><br/>
    </div>

    <div class="BRPFPageFooter" style="width: 100%;"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; "><ix:nonNumeric name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="Text_02dae1eef11e490ba4d04083cf52b1cc" contextRef="c20240101to20241231" escape="true" continuedAt="Text_7d32bebe17c64969888fd174159ba6631">
<div>
   <span style="font-weight: bold; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">5. Intangible assets, net </span></div>
</ix:nonNumeric>
    <ix:continuation id="Text_7d32bebe17c64969888fd174159ba6631" continuedAt="Text_7d32bebe17c64969888fd174159ba6632">
<div style="text-align: justify;"><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_7d32bebe17c64969888fd174159ba6632" continuedAt="Text_7d32bebe17c64969888fd174159ba6633"><ix:nonNumeric name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="Text_2c9b6e33c54f441a8bdc5b9f421a3723" contextRef="c20240101to20241231" escape="true" continuedAt="Text_3b0ff18effbd426d90f1b7fbf72272c81">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:</span></div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_7d32bebe17c64969888fd174159ba6633" continuedAt="Text_7d32bebe17c64969888fd174159ba6634"><ix:continuation id="Text_3b0ff18effbd426d90f1b7fbf72272c81" continuedAt="Text_3b0ff18effbd426d90f1b7fbf72272c82">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_7d32bebe17c64969888fd174159ba6634" continuedAt="Text_7d32bebe17c64969888fd174159ba6635"><ix:continuation id="Text_3b0ff18effbd426d90f1b7fbf72272c82">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="14">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left;">&#160;</div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross Amount</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accumulated Amortization</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross Amount</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accumulated Amortization</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Purchased technology</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_d5a093a26cf34be8b62f6c103773dc5f" contextRef="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,591</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_d4737d0b20724df785d42ecc7bf15cf0" contextRef="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,591</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_b1555b32d7b343c5817584f404e76af2" contextRef="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,591</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_a925aa50ef064ada9862b25d3c146c2a" contextRef="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,503</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Patents</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_0b755512053e418b87253b9d8a25c18b" contextRef="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_514db014fd4d4f07911e083a1af88392" contextRef="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_1be6bc6d280d47e8be798c8e30b968b4" contextRef="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_de3c6b5df2534926b6d664f2c03062d7" contextRef="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_8f6fdc78adb846eea43d49d0c471a17d" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,606</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_8b20e500e6a545a28071cf90e23e4a40" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,606</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_4c15b1f20de34bbdbfd32f862c0df356" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,606</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_5cbdb41c2aaa470fa917cb8da1141066" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,518</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>

    <ix:continuation id="Text_7d32bebe17c64969888fd174159ba6635" continuedAt="Text_7d32bebe17c64969888fd174159ba6636">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_7d32bebe17c64969888fd174159ba6636">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Amortization expense was $<ix:nonFraction name="us-gaap:AmortizationOfIntangibleAssets" id="Fact_a186f4bf37cf4bb3ae45664f520d05dc" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">88</ix:nonFraction> thousand and
      $<ix:nonFraction name="us-gaap:AmortizationOfIntangibleAssets" id="Fact_dabc4f7bfcc04e7a833c021fca1b0190" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">154</ix:nonFraction> thousand in 2024 and
      2023, respectively.&#160; We currently do not anticipate any amortization expense for each of the next five years ending December 31.<br/>
    </div>
</ix:continuation>

    <div><br/>
    </div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="Text_52ea3c87be4845ddb1334c5734862f42" contextRef="c20240101to20241231" escape="true" continuedAt="Text_a0b4f268567a4a809ad4f5db80c02daa1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">6. Accrued liabilities</div>
</ix:nonNumeric>
    <ix:continuation id="Text_a0b4f268567a4a809ad4f5db80c02daa1" continuedAt="Text_a0b4f268567a4a809ad4f5db80c02daa2">
<div style="text-align: justify;"><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_a0b4f268567a4a809ad4f5db80c02daa2" continuedAt="Text_a0b4f268567a4a809ad4f5db80c02daa3"><ix:nonNumeric name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="Text_c9185714c13c4cb4bddb0fa5041bbf3e" contextRef="c20240101to20241231" escape="true" continuedAt="Text_9c0879dedc104e1a8748b4574c3244a81">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of accrued liabilities are:</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_a0b4f268567a4a809ad4f5db80c02daa3" continuedAt="Text_a0b4f268567a4a809ad4f5db80c02daa4"><ix:continuation id="Text_9c0879dedc104e1a8748b4574c3244a81" continuedAt="Text_9c0879dedc104e1a8748b4574c3244a82">
<div style="text-align: left;"><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_a0b4f268567a4a809ad4f5db80c02daa4"><ix:continuation id="Text_9c0879dedc104e1a8748b4574c3244a82">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Salaries and compensation related</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EmployeeRelatedLiabilitiesCurrent" id="Fact_bd5cc5fa04ba4ec3b3571b26f7b2f2ab" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,786</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EmployeeRelatedLiabilitiesCurrent" id="Fact_3cf1454d66f04df098b3ae37388a6a96" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,455</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Taxes</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:TaxesPayableCurrent" id="Fact_5431831183324c1c975b4161ec736403" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">725</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:TaxesPayableCurrent" id="Fact_64e1e701d6b44e54845003ae2cec4d06" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">870</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Professional and consulting</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedProfessionalFeesCurrent" id="Fact_fb22d65092bc4e13a57f73400a658b15" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">200</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedProfessionalFeesCurrent" id="Fact_a52f6eb6cbdd4c59912908c80114a0bc" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">161</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherLiabilitiesCurrent" id="Fact_e773cd66cc5b493b88b68502b7d39db5" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">542</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherLiabilitiesCurrent" id="Fact_99e5a2ae829e4bcb8c8607a193c3f2a9" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">461</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" id="Fact_bd208c31084d449e93815b6d573ba4b3" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,253</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" id="Fact_7a0004f5027341f08197eb16ffc985ee" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,947</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

    <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-17</span></div>

      <div class="BRPFPageBreak" style="page-break-after: always;">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div class="BRPFPageHeader" style="width: 100%;">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>


  </div>
<div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;">
   <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

    <div>
      <ix:nonNumeric name="us-gaap:SegmentReportingDisclosureTextBlock" id="Text_fa350ddad15549d18f9e3234c22c160c" contextRef="c20240101to20241231" escape="true" continuedAt="Text_3068947fe69847c08367c2506d72608e1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">7. Segment reporting</div>
</ix:nonNumeric>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e1" continuedAt="Text_3068947fe69847c08367c2506d72608e2">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e2" continuedAt="Text_3068947fe69847c08367c2506d72608e3">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We apply the provisions of the Financial Accounting Standards Board (&#8220;FASB&#8221;) Accounting Standards Codification (&#8220;ASC&#8221;) 280, &#8220;Segment Reporting.&#8221; We
        view our operations and manage our business as <ix:nonFraction name="us-gaap:NumberOfOperatingSegments" id="Fact_81c2ebe27d5a4237b88b01c29710533f" contextRef="c20240101to20241231" unitRef="U004" decimals="INF" scale="0" format="ixt-sec:numwordsen">one</ix:nonFraction> segment: the design, development and marketing of software-driven technology and
        printing solutions and the sale of printer and terminal related software, services, supplies and spare parts. Factors used to identify TransAct&#8217;s single operating segment include the similar design, construction and functionality of our products
        and services, the combined research &amp; development team that supports the entire company, a combined assembly, production and supply chain logistics process used to construct our products and services and a similar class of customers within our
        core markets (distributors, resellers, original equipment manufacturers (&#8220;OEMs&#8221;) and end users). Other factors used to identify TransAct&#8217;s single operating segment include the organizational structure of the Company and the financial information
        available for evaluation by the chief operating decision-maker (&#8220;CODM&#8221;) in making decisions about how to allocate resources and assess performance. The Company&#8217;s chief operating decision makers, who are the Company&#8217;s chief executive officer and the
        Company&#8217;s chief financial officer, utilize a consolidated approach to assess the performance of and allocate resources to the business.</div>
</ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e3" continuedAt="Text_3068947fe69847c08367c2506d72608e4">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e4" continuedAt="Text_3068947fe69847c08367c2506d72608e5">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We generally use measures of sales, gross margin percentage, net income, earnings before interest, taxes, depreciation and amortization (&#8220;EBITDA&#8221;) and
        adjusted EBITDA to make operational and strategic decisions. These financial measures are compared to budgeted and forecasted amounts by the CODMs on a regular basis to measure our progress towards our strategic plans, pursue product enhancements,
        conduct research and development initiatives and make any other necessary overall strategic changes to the business.<br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e5" continuedAt="Text_3068947fe69847c08367c2506d72608e6">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"><br/>
      </div>
</ix:continuation>

      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e6" continuedAt="Text_3068947fe69847c08367c2506d72608e7"><ix:nonNumeric name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" id="Text_98748d83e17440f59cf4d9186bfdc7f7" contextRef="c20240101to20241231" escape="true" continuedAt="Text_65afa89e1e884747b5863e66d72b3ecb1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following table provides the operating financial results of our segment:</div>
</ix:nonNumeric></ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e7" continuedAt="Text_3068947fe69847c08367c2506d72608e8"><ix:continuation id="Text_65afa89e1e884747b5863e66d72b3ecb1" continuedAt="Text_65afa89e1e884747b5863e66d72b3ecb2">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e8" continuedAt="Text_3068947fe69847c08367c2506d72608e9"><ix:continuation id="Text_65afa89e1e884747b5863e66d72b3ecb2" continuedAt="Text_65afa89e1e884747b5863e66d72b3ecb3">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: 2px solid rgb(0, 0, 0);" colspan="6">
              <div style="text-align: center;">December 31,</div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;">
              <div style="text-align: justify; font-style: italic;">(In thousands)</div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" colspan="2">
              <div style="text-align: center;">2024</div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" colspan="2">
              <div style="text-align: center;">2023</div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
              <div>
                <div>Revenues</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div>
                <div>$</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_3b9f8625732843688901eddd3797abf0" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">43,384</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div>
                <div>$</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_bf1e3eed4fae4b9bbf07405443119f40" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">72,631</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>Cost of materials sold</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:CostDirectMaterial" id="Fact_bb2da0a8e1eb400e92d88ebd241c04b8" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,268</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:CostDirectMaterial" id="Fact_0f1a67ee73254bd282020efc72a95f6e" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">25,990</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
              <div>
                <div>Compensation costs</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:CompensationExpenseExcludingCostOfGoodAndServiceSold" id="Fact_066b83cc06af4e39b480ba2d867549aa" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">18,323</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:CompensationExpenseExcludingCostOfGoodAndServiceSold" id="Fact_d9876f2e3697407798d8c3ae1caf3760" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">20,004</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>Professional services</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:ProfessionalAndContractServicesExpense" id="Fact_4b65388952354ab1baab04482ac4a5e6" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,493</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:ProfessionalAndContractServicesExpense" id="Fact_7fd9a07ebf0e4d93afbda731042d5c9c" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,965</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
              <div>
                <div>Occupancy costs</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:OccupancyNet" id="Fact_aab3f7733f2e459ebb06a32a18ff4535" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,477</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:OccupancyNet" id="Fact_a203c6a15b0245bcb71b51a11d71f366" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,485</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>Marketing expenses</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:MarketingExpense" id="Fact_57d32f180fcb46baa94abbcb0f36e416" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,109</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:MarketingExpense" id="Fact_81dc422beef947c0ac3a19539f382ce4" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,715</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
              <div>
                <div>IT expenses</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:InformationTechnologyAndDataProcessing" id="Fact_bba45235479745b4ac8616b551cbd20c" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,255</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:InformationTechnologyAndDataProcessing" id="Fact_732d0f981fb84dfab3a051b1d3dc36a7" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,203</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>Severance expense</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:SeveranceCosts1" id="Fact_5a392381bfff43998fa227ab5c538748" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">75</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:SeveranceCosts1" id="Fact_38951db087af45179fc87c3b298466cd" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,785</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
              <div>
                <div>Depreciation and amortization</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:DepreciationAndAmortization" id="Fact_21baf38b0bdc4b6f8e48432b6f91821d" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,037</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:DepreciationAndAmortization" id="Fact_eea30887086d4de5a4a4e8a26472a874" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,489</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
              <div>
                <div>Other segment expenses<sup>(1)</sup></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:SegmentReportingOtherItemAmount" id="Fact_502acbc2d8e74a0a9b7fc4f7f44e1474" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,973</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:SegmentReportingOtherItemAmount" id="Fact_0a59ae3f007a480f9e88972683ed59e3" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,289</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div>(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_2f14127eec174f4bb6219218e7bf95bd" contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,626</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_a04a3ec3523b43259e363a2e757fec79" contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,706</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
              <div>
                <div>Interest income</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:InterestIncomeDomesticDeposits" id="Fact_665d166c350e4c519aff0eda8a395b9b" contextRef="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">469</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:InterestIncomeDomesticDeposits" id="Fact_d1cf928b33994d68881417a7251d22a2" contextRef="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">55</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>Interest expense</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div>(<ix:nonFraction name="us-gaap:InterestExpenseNonoperating" id="Fact_660e4013550a4ef5be2eb4d35f5a1055" contextRef="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">322</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
              <div>
                <div>(<ix:nonFraction name="us-gaap:InterestExpenseNonoperating" id="Fact_2bfef5a375ab467db2df71b0edf0616f" contextRef="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">310</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
              <div>
                <div>)</div>
              </div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
              <div>
                <div>Other (expense) income</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div>(<ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" id="Fact_502828c5f1de4f38822dc1674f9caa2e" contextRef="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">89</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" id="Fact_014529c04fb54a39b21adb253df1c35b" contextRef="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">452</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;">
              <div>
                <div>Income tax benefit (expense)</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
              <div>
                <div>(<ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_2ca8d4f49c76458bbe79d26dcbd6f4a4" contextRef="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,295</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" colspan="1">
              <div>
                <div>(<ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_2f466605c68e4c7288861109428d0286" contextRef="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,155</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" colspan="1">
              <div>
                <div>)</div>
              </div>
            </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 4px;">
              <div>
                <div>Net (loss) income</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" colspan="1">
              <div>
                <div>$</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" colspan="1">
              <div>
                <div>(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_f14fe3253e824bffa5279f9f4a8e55bc" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,863</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" colspan="1">
              <div>
                <div>$</div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" colspan="1">
              <div>
                <div><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_d9f3e830ac1b4ac18536d23ee4b7fa98" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,748</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e9" continuedAt="Text_3068947fe69847c08367c2506d72608e10"><ix:continuation id="Text_65afa89e1e884747b5863e66d72b3ecb3" continuedAt="Text_65afa89e1e884747b5863e66d72b3ecb4">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e10" continuedAt="Text_3068947fe69847c08367c2506d72608e11"><ix:continuation id="Text_65afa89e1e884747b5863e66d72b3ecb4">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1)</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"><ix:nonNumeric name="us-gaap:SegmentReportingOtherItemCompositionDescription" id="Fact_7f07a0b6d2974c4e9777ed937e8f6961" contextRef="c20240101to20241231">Other Segment expenses included in Segment net income primarily include other cost of goods sold, other administrative costs and engineering costs.</ix:nonNumeric><br/>
                </div>
              </td>

  </tr>


</table>
      </div>
</ix:continuation></ix:continuation>
      <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;">
        <ix:continuation id="Text_3068947fe69847c08367c2506d72608e11" continuedAt="Text_3068947fe69847c08367c2506d72608e12">
<div><br/>
        </div>
</ix:continuation>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-18</span></div>

          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

          <div style="width: 100%;" class="BRPFPageHeader">
            <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

          </div>

        </div>

      </div>


      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e12" continuedAt="Text_3068947fe69847c08367c2506d72608e13"><ix:nonNumeric name="tact:ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" id="Text_9c582f45ccda49f8a15e4fe34913ed6c" contextRef="c20240101to20241231" escape="true" continuedAt="Text_d7ef92fe28d34da6922f85575c7ce0811">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">A reconciliation of net (loss) income to EBITDA and adjusted EBITDA follows:</div>
</ix:nonNumeric></ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e13" continuedAt="Text_3068947fe69847c08367c2506d72608e14"><ix:continuation id="Text_d7ef92fe28d34da6922f85575c7ce0811" continuedAt="Text_d7ef92fe28d34da6922f85575c7ce0812">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e14" continuedAt="Text_3068947fe69847c08367c2506d72608e15"><ix:continuation id="Text_d7ef92fe28d34da6922f85575c7ce0812" continuedAt="Text_d7ef92fe28d34da6922f85575c7ce0813">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="text-align: center;">Years Ended December 31,</div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;">
              <div style="text-align: justify; font-style: italic;">(In thousands)</div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="text-align: center;">2024</div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;">
              <div style="text-align: center;">2023</div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>Net (loss) income</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
              <div>
                <div>$</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
              <div>
                <div>(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_acaac7f470ee4b3e91116016dfea777d" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,863</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
              <div>
                <div>$</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
              <div>
                <div><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_4e6a774a19c74c9a963c59bfeb426e1c" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,748</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
              <div>
                <div>Interest (income) expense, net</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;">
              <div>
                <div>(<ix:nonFraction name="us-gaap:InterestIncomeExpenseNonoperatingNet" id="Fact_0953c18d70bf4713a58dda1ad39767b3" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">147</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;">
              <div>
                <div><ix:nonFraction name="us-gaap:InterestIncomeExpenseNonoperatingNet" id="Fact_b881f002d4bc455899a2029943edc5d3" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">255</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>Income tax expense</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
              <div>
                <div><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_4fa405151c3b44debad13a4f61a90fd6" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,295</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
              <div>
                <div><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_9451cdb46226498581dc2e18936d32bb" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,155</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;">
              <div>
                <div>Depreciation and amortization</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
              <div>
                <div><ix:nonFraction name="us-gaap:DepreciationAndAmortization" id="Fact_6633ecae3a70462abbc77145172b6db7" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,037</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
              <div>
                <div><ix:nonFraction name="us-gaap:DepreciationAndAmortization" id="Fact_51aaa089a4c24714b25950c962a1e659" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,489</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>EBITDA</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
              <div>
                <div>(<ix:nonFraction name="tact:EarningsBeforeInterestTaxesDepreciationAndAmortization" id="Fact_a9010b69b25c4a6bbd788c2746463adb" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,678</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
              <div>
                <div><ix:nonFraction name="tact:EarningsBeforeInterestTaxesDepreciationAndAmortization" id="Fact_8a5460ae505f4f6593798955114bda1a" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,647</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
              <div>
                <div>Share-based compensation</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
              <div>
                <div><ix:nonFraction name="us-gaap:ShareBasedCompensation" id="Fact_8ae0bb567cf3432da249bfc68dc23e74" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,157</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
              <div>
                <div><ix:nonFraction name="us-gaap:ShareBasedCompensation" id="Fact_4db8c3c34fc14c219e0c688ea2f32aa3" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">860</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);">
              <div>
                <div style="font-size: 8pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Adjusted EBITDA</span><sup><span style="font-family: 'Times New Roman'; font-size: 10pt;">(1)</span></sup></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
              <div>
                <div>$</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
              <div>
                <div>(<ix:nonFraction name="tact:AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" id="Fact_59fa5feca42d48beae2abad5070c7659" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,521</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">
              <div>
                <div>)</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
              <div>
                <div>$</div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
              <div>
                <div><ix:nonFraction name="tact:AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" id="Fact_0461940fd93f4a23acf26fcf7baf9ef1" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,507</ix:nonFraction></div>
              </div>
            </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e15" continuedAt="Text_3068947fe69847c08367c2506d72608e16"><ix:continuation id="Text_d7ef92fe28d34da6922f85575c7ce0813" continuedAt="Text_d7ef92fe28d34da6922f85575c7ce0814">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>
</ix:continuation></ix:continuation>
      <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;">
        <ix:continuation id="Text_3068947fe69847c08367c2506d72608e16" continuedAt="Text_3068947fe69847c08367c2506d72608e17"><ix:continuation id="Text_d7ef92fe28d34da6922f85575c7ce0814">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
          <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1)</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
                  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"><ix:footnote id="Foot_b9e98cfa484b4af5927ff1faa04bae67" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US"><span style="font-family: 'Times New Roman'; font-size: 10pt;">Adjusted EBITDA in 2023 includes a $<ix:nonFraction name="us-gaap:SeveranceCosts1" id="Fact_d8232b15bbde4188b8c249f273ab692c" contextRef="c20230101to20231231_TitleOfIndividualAxis_ChiefExecutiveOfficerMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.5</ix:nonFraction> million severance charge related to the
                      resignation of the Company&#8217;s former Chief Executive Officer.</span></ix:footnote></div>
                </td>

  </tr>


</table>
          </div>
</ix:continuation></ix:continuation>
      </div>

      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e17" continuedAt="Text_3068947fe69847c08367c2506d72608e18">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_3068947fe69847c08367c2506d72608e18">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Please see Note 14 for net sales and long-lived assets by geographic area.</div>
</ix:continuation>

      <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
      </div>

    </div>

    <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:CompensationAndEmployeeBenefitPlansTextBlock" id="Text_4be85790c86e46c8a04f2516e69d3c63" contextRef="c20240101to20241231" escape="true" continuedAt="Text_c15a72ee5bdd45c9a2a72704f818801b1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">8. Retirement savings plan</div>
</ix:nonNumeric>
    <ix:continuation id="Text_c15a72ee5bdd45c9a2a72704f818801b1" continuedAt="Text_c15a72ee5bdd45c9a2a72704f818801b2">
<div style="text-align: justify;"><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_c15a72ee5bdd45c9a2a72704f818801b2">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We maintain a 401(k) plan under which all full-time employees are eligible to participate at the beginning of the month immediately following their date
      of hire.&#160; We match employees&#8217; contributions at a rate of <ix:nonFraction name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" id="Fact_92a6a8b994544462b2610019de78684a" contextRef="c20240101to20241231" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">50</ix:nonFraction>% of employees&#8217; contributions up to the first <ix:nonFraction name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent" id="Fact_8ff14f088d7547318b5fbfcc0b090d77" contextRef="c20240101to20241231" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">6</ix:nonFraction>% of the employees&#8217; compensation contributed to the 401(k) plan.&#160; Our matching contributions, net of applied forfeitures, were $<ix:nonFraction name="us-gaap:DefinedContributionPlanCostRecognized" id="Fact_cb34102547fe4627973972fe899e2a0f" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">364</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:DefinedContributionPlanCostRecognized" id="Fact_c8d4246c182541598452fde9b82b205a" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">230</ix:nonFraction> thousand in 2024 and 2023, respectively.</div>
</ix:continuation>
    <div><br/>
    </div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:DebtDisclosureTextBlock" id="Text_a429fc8dfa4349bfb0627a1706bd73fa" contextRef="c20240101to20241231" escape="true" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">9. Borrowings</div>
</ix:nonNumeric>
    <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f1" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f2">
<div style="text-align: justify;"><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f2" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f3">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;">Credit Facility</div>
</ix:continuation>
    <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
      <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f3" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f4">
<div><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">On March 13, 2020, we entered into the
          Loan and Security Agreement (the &#8220;Loan Agreement&#8221;) governing a credit facility (the &#8220;Siena Credit Facility&#8221;) with Siena Lending Group LLC (the &#8220;Lender&#8221;).&#160; The Siena Credit Facility provides for a revolving credit line of up to $<ix:nonFraction name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" id="Fact_546aa593334a4dbab867a240f64a8aaa" contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">10.0</ix:nonFraction> million and was originally scheduled to expire on March 13, 2023, prior to being extended, as discussed below. Borrowings under the Siena Credit Facility bear a floating rate of interest equal to the greatest of (i) the prime rate plus <ix:nonFraction name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" id="Fact_fe7e322c06534de1b73fd9a039cdc32d" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_PrimeRateMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">1.75</ix:nonFraction>%, (ii) the federal funds rate plus <ix:nonFraction name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" id="Fact_b36237d39f4d4fa7844446340e17d326" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_FederalFundsEffectiveSwapRateMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">2.25</ix:nonFraction>%, and (iii) <ix:nonFraction name="us-gaap:DebtInstrumentInterestRateStatedPercentage" id="Fact_10e3d16bdc864086b5b84338828f5804" contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">6.50</ix:nonFraction>%. The total deferred financing costs related to expenses incurred to complete the Siena Credit Facility were $<ix:nonFraction name="us-gaap:DeferredFinanceCostsGross" id="Fact_7e50a967d40c42f7a1661f0c8e187faf" contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">245</ix:nonFraction> thousand which were reported as &#8220;Other current assets&#8221; in current assets and &#8220;Other assets&#8221; in non-current assets in the Consolidated Balance
          Sheets. We also pay a fee of <ix:nonFraction name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" id="Fact_8d8e80274324480aa3afcf6a6e00cd99" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">0.50</ix:nonFraction>% on unused borrowings under the Siena Credit Facility. Borrowings under the Siena Credit Facility
          are secured by a lien on substantially all the assets of the Company. Borrowings under the Siena Credit Facility are subject to a borrowing base based on <ix:nonFraction name="tact:DebtInstrumentFinancialCovenantEligibleAccountsReceivable" id="Fact_1e945d7b733e437f9ff564495962e241" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">85</ix:nonFraction>% of eligible accounts receivable plus the lesser of (a) $<ix:nonFraction name="tact:DebtInstrumentFinancialCovenantEligibleInventory" id="Fact_d05247e9d0b0461b97340deb6d59d26d" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">5.0</ix:nonFraction> million and
          (b) <ix:nonFraction name="tact:DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" id="Fact_b7b5ef9ea9d84eac8deaa03848945f1d" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">50</ix:nonFraction>% of eligible raw material and <ix:nonFraction name="tact:DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" id="Fact_cf973adb9499418fa58f99637b01f10d" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">60</ix:nonFraction>%
          of finished goods inventory.&#160; <br/>
        </span> </div>
</ix:continuation>
      <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f4" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f5">
<div style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f5" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f6">
<div> <span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">The Siena Credit Facility imposes a
          financial covenant on the Company and restricts, among other things, our ability to incur additional indebtedness and create other liens. On July 21, 2021, the Company entered into an amendment (&#8220;Siena Credit Facility Amendment No. 1&#8221;) to the
          Loan Agreement. Siena Credit Facility Amendment No. 1 changed the financial covenant under the Siena Credit Facility from a minimum EBITDA covenant to an excess availability covenant requiring that the Company maintain excess availability of at
          least $<ix:nonFraction name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" id="Fact_25aed6fea1fc4a708a121c3e259a5462" contextRef="c20210721_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_RangeAxis_MinimumMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">750</ix:nonFraction> thousand under the Siena Credit Facility, tested as of the end of each calendar month, beginning with the calendar month
          ended July 31, 2021. From July 31, 2021 through December 31, 2024, we remained in compliance with our excess availability covenant. <br/>
        </span><br/>
      </div>
</ix:continuation>
    </div>

    <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f6" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f7">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">On July 19, 2022, the Company and the Lender entered into Amendment No. 2 (&#8220;Siena Credit Facility Amendment No. 2&#8221;) to the Loan Agreement as amended
      by Siena Credit Facility Amendment No. 1. Also on July 19, 2022, the Company and the Lender entered into an Amended and Restated Fee Letter (the &#8220;Amended Fee Letter&#8221;) in connection with Siena Credit Facility Amendment No. 2. Siena Credit Facility
      Amendment No. 2 did not modify the aggregate amount of the revolving commitment or the interest rate applicable to the loans. Among other changes, Siena Credit Facility Amendment No. 2 extended the maturity date from March 13, 2023 to March 13, 2025.
      In addition, the Amended Fee Letter required the Company to maintain outstanding borrowings of at least $<ix:nonFraction name="tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" id="Fact_9b3b6627cb5c4caca254a60c69dc9c98" contextRef="c20241119_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-4" scale="6" format="ixt:num-dot-decimal">2.25</ix:nonFraction> million in principal amount
      or, during any period during which the Lender had control of the Company&#8217;s deposit account in accordance with the Loan Agreement, as amended by Siena Credit Facility Amendment No. 2, to pay interest on at least $<ix:nonFraction name="tact:DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" id="Fact_9fae9a2790334ec1936867eb49d2cf78" contextRef="c20241119_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-4" scale="6" format="ixt:num-dot-decimal">2.25</ix:nonFraction> million in principal amount of outstanding borrowings, whether or not such amount of loans was actually outstanding.<br/>
      <br/>
    </div>
</ix:continuation>
    <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-19</span></div>

      <div class="BRPFPageBreak" style="page-break-after: always;">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div class="BRPFPageHeader" style="width: 100%;">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f7" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f8">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">On May 1, 2023, the Company and the Lender agreed to a letter amendment (Amendment No. 3) to the Loan Agreement. Prior to such amendment, Section 7.1(m)
      of the Loan Agreement required that any successor to the Company&#8217;s former Chief Executive Officer be reasonably acceptable to the Lender. This amendment confirmed that Mr. John Dillon, the Company&#8217;s current Chief Executive Officer, is an acceptable
      successor, and applied the same requirement to any future successor to Mr. Dillon as Chief Executive Officer.</div>
</ix:continuation>
    <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f8" continuedAt="Text_1135ac84fb0543219a1c69e4b9cbb37f9">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_1135ac84fb0543219a1c69e4b9cbb37f9">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">On November 20, 2024, the Company and the Lender entered into Amendment No. 4 (&#8220;Siena Credit Facility Amendment No. 4&#8221;) to the Loan Agreement.&#160; The
      changes to the Loan Agreement provided for in Siena Credit Facility Amendment No. 4 include, among other things, the extension of the maturity date from March 13, 2025 to March 31, 2027. Also on November 20, 2024, the Company and the Lender entered
      into a Second Amended and Restated Fee Letter (the &#8220;Second Amended Fee Letter&#8221;) in connection with Siena Credit Facility Amendment No. 4. The Second Amended Fee Letter increases the minimum borrowing amount from $<ix:nonFraction name="tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" id="Fact_37cfb4c68d66409dadb9350ffbb8fdc7" contextRef="c20241119_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-4" scale="6" format="ixt:num-dot-decimal">2.25</ix:nonFraction> million to $<ix:nonFraction name="tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" id="Fact_b366a6548d484b95a33f4bccfa2fc280" contextRef="c20241120_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">3.0</ix:nonFraction> million, such that the
      Company is required to either maintain outstanding borrowings of at least $<ix:nonFraction name="tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" id="Fact_32478cbc8cb543da8d8026dde09ad407" contextRef="c20241120_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">3.0</ix:nonFraction> million in principal amount, or during any period during
      which the Lender has control of the Company&#8217;s deposit account in accordance with the Loan Agreement, as amended by Siena Credit Facility Amendment No. 4, to pay interest on at least $<ix:nonFraction name="tact:DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" id="Fact_305352cdef924d17b57be72ba4bb6046" contextRef="c20241120_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">3.0</ix:nonFraction> million principal amount of loans, whether or not such amount of loans is actually outstanding. The Second Amended Fee Letter also extends the dates before which a prepayment and
      termination of the Loan Agreement requires the Company to pay to the Lender an early payment/termination premium, providing for (i) a <ix:nonFraction name="tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" id="Fact_ff56c03e1c554a89be3bdc18887d1643" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="INF" scale="-2" format="ixt-sec:numwordsen">two </ix:nonFraction>percent
      premium for prepayment on or prior to March 31, 2025, (ii) a <ix:nonFraction name="tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" id="Fact_56eb616638c04c0a8ce2c7a5daf06e7f" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="INF" scale="-2" format="ixt-sec:numwordsen">one </ix:nonFraction>percent premium for prepayment from April 1, 2025 through March 31, 2026,
      and <ix:nonFraction name="tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" id="Fact_81a90081f611463dad15e17c2bd61640" contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="INF" scale="0" format="ixt-sec:numwordsen">no</ix:nonFraction> premium for prepayment thereafter. <br/>
      <br/>
      As of December 31, 2024 and 2023, we had $<ix:nonFraction name="us-gaap:SecuredDebt" id="Fact_c3901d414afc4d889fd51b495e48318c" contextRef="c20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">3.0</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:SecuredDebt" id="Fact_172b50c68a3a4240913e25ad10dd8622" contextRef="c20231231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">2.3</ix:nonFraction> million, respectively, of outstanding borrowings under the Siena Credit Facility at interest rates of <ix:nonFraction name="us-gaap:DebtInstrumentInterestRateStatedPercentage" id="Fact_c24aa4fd8d2e4b2f809a6b4a91f4e295" contextRef="c20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">9.25</ix:nonFraction>% and <ix:nonFraction name="us-gaap:DebtInstrumentInterestRateStatedPercentage" id="Fact_24f765b935f94036bd2d1a87e02cb3da" contextRef="c20231231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">10.25</ix:nonFraction>%, respectively.&#160; We had $<ix:nonFraction name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" id="Fact_3e55239a06c64771b69521252b2a6876" contextRef="c20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">3.2</ix:nonFraction> million of net borrowing capacity available under the Siena Credit Facility at December 31, 2024.<br/>
    </div>
</ix:continuation>

    <div><br/>
    </div>

    <div class="BRPFPageFooter" style="width: 100%;"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">
   <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

    <ix:nonNumeric name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="Text_da76e37629e04642b6231ec47d5ba588" contextRef="c20240101to20241231" escape="true" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc1">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">10. Stock incentive plans</div>
</ix:nonNumeric>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc1" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc2">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc2" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc3">
<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc3" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc4">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc4" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc5">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Stock incentive plans</span><span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;">.</span><span style="font-family: 'Times New Roman'; font-size: 10pt;">&#160; We currently have <ix:nonFraction name="tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" id="Fact_3688807ef7414e29802db0211d35e3c6" contextRef="c20240101to20241231" unitRef="U007" decimals="INF" scale="0" format="ixt-sec:numwordsen">two</ix:nonFraction>
        stock incentive plans: the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, which provide for awards to executives, key employees, directors and consultants.&#160; The plans generally provide for awards in the form of: (i) incentive stock
        options, (ii) non-qualified stock options, (iii) restricted stock, (iv) restricted stock units (which may include performance-based vesting), (v) stock appreciation rights or (vi) limited stock appreciation rights.&#160; Awards granted under these plans
        have exercise prices equal to <ix:nonFraction name="tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" id="Fact_49f430f190eb439fb90e2c090c72871a" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">100</ix:nonFraction>% of the fair market value of the common stock at the date of grant.&#160; Awards granted have a <ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Fact_2570427c81fe41488e383e0b3a9352cd" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember" format="ixt-sec:durwordsen">ten-year</ix:nonNumeric> term and generally vest over a <ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact_0db0071e27344978a46a5ee7c3579edc" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">two-year</ix:nonNumeric>
        to <ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact_a94bcb7fd5bc40b1b0365b91ee824fc9" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">four-year</ix:nonNumeric> period, unless automatically accelerated for certain defined events.&#160; As of May 2014, no new awards may be made under the
        2005 Equity Incentive Plan.&#160; Under our 2014 Equity Incentive Plan, as amended in May 2023, we are authorized to grant awards of up to <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" id="Fact_c4642ad47bd542f381e9a4fdf0f34f56" contextRef="c20241231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">2.9</ix:nonFraction>
        million shares of TransAct common stock.&#160; At December 31, 2024, <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" id="Fact_2053c108733043bfa7f32fb2d6c14bd8" contextRef="c20241231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">655,672</ix:nonFraction> shares of common stock remained available for issuance under the 2014 Equity Incentive Plan.</span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc5" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc6">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc6" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc7">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc7" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc8">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc8" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc9">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Under the assumptions indicated below, the weighted-average per share fair value of stock option grants for 2024 and 2023 was $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_b922d7d1b6aa4cd9baa53e762dcedcb1" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">3.98</ix:nonFraction> and $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_ba65f86a2c1f48078bb345dfe0fb574a" contextRef="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">4.16</ix:nonFraction>, respectively.&#160; We also
      issued restricted stock units for certain executives and directors that vest over a specified period of time, and in some instances require achieving certain performance metrics.&#160; The weighted-average per share fair value of these restricted stock
      units was $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_1cd326659c134727a3b8df75794d2806" contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">5.81</ix:nonFraction> and $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_59cecb4194ab4fffbab4fe55cc5cafdf" contextRef="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">7.21</ix:nonFraction> in
      2024 and 2023,
      respectively. The per share fair value of restricted stock units is the trading value of the stock on the date of the grant.</div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc9" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc10">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc10" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc11">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc11" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc12"><ix:nonNumeric name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="Text_69bdf2cf012d43adbf999330b27be273" contextRef="c20240101to20241231" escape="true" continuedAt="Text_e16214a1318a4cda90fcd2bcefd0e9e31">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc12" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc13"><ix:continuation id="Text_e16214a1318a4cda90fcd2bcefd0e9e31" continuedAt="Text_e16214a1318a4cda90fcd2bcefd0e9e32">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2024 and 2023 and a discussion of our
      methodology for developing each of the assumptions used in the valuation model:</div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc13" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc14"><ix:continuation id="Text_e16214a1318a4cda90fcd2bcefd0e9e32" continuedAt="Text_e16214a1318a4cda90fcd2bcefd0e9e33">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc14" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc15"><ix:continuation id="Text_e16214a1318a4cda90fcd2bcefd0e9e33" continuedAt="Text_e16214a1318a4cda90fcd2bcefd0e9e34">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc15" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc16"><ix:continuation id="Text_e16214a1318a4cda90fcd2bcefd0e9e34" continuedAt="Text_e16214a1318a4cda90fcd2bcefd0e9e35">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc16" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc17"><ix:continuation id="Text_e16214a1318a4cda90fcd2bcefd0e9e35">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0);">Years ended December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;"><br/>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0);">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0);">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Expected option term (in years)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Fact_687e78c01e4543809ffb7f37d8ab08e0" contextRef="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member" format="ixt-sec:duryear">6.1</ix:nonNumeric></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Fact_d6744edfaddc46839f67827df7a5d528" contextRef="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member" format="ixt-sec:duryear">7.0</ix:nonNumeric></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Expected volatility</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" id="Fact_5d2a4dd35a8b47f7af32c07eea7f055a" contextRef="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">57.7</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" id="Fact_421c716f61f64b0694e4f82983064083" contextRef="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">55.6</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Risk-free interest rate</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" id="Fact_d138d3cea5974569bf848f247d7af481" contextRef="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">4.3</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" id="Fact_75218615b1364cd5927f84f650b1b041" contextRef="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">4.2</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Dividend yield</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" id="Fact_6a7b4fc91008430ea1ba798652bbf358" contextRef="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.0</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" id="Fact_17704d9377a04af9b8a4ea15e6f66f93" contextRef="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.0</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc17" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc18">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc18" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc19">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc19" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc20">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc20" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc21">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Expected Option Term</span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> - This is the weighted average period of time over which the options granted are expected to remain outstanding giving consideration to our historical exercise patterns.&#160; Options granted
        have a maximum term of <ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Fact_80db50693f874a31ad6302a0e7771e4b" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member" format="ixt-sec:durwordsen">ten years</ix:nonNumeric> and an increase in the expected term will increase compensation expense.</span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc21" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc22">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc22" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc23">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc23" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc24">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc24" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc25">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Expected Volatility</span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> &#8211; The stock volatility for each grant is measured using the weighted average of historical daily price changes of our common stock over the most recent period approximately equal to the expected option term of
        the grant.&#160; An increase in the expected volatility factor will increase compensation expense.</span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc25" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc26">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc26" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc27">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-20</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div class="BRPFPageHeader" style="width: 100%;">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc27" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc28">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc28" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc29">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Risk-Free Interest Rate</span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> - This is the U.S. Treasury rate in effect at the time of grant having a term approximately equal to the expected term of the option.&#160; An increase in the risk-free interest rate will
        increase compensation expense.</span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc29" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc30">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc30" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc31">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Dividend Yield</span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> &#8211;The dividend yield is calculated by dividing the annual dividend declared per common share by the weighted average market value of our common stock on the date of grant. An increase in the dividend yield will
        decrease compensation expense.</span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc31" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc32">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc32" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc33">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc33" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc34">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc34" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc35">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We recorded $<ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" id="Fact_7348a698cb7c4c47be5e7a5b82c93947" contextRef="c20240101to20241231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.2</ix:nonFraction> and $<ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" id="Fact_31aa16f30a2042b281f84c20e1c6ade2" contextRef="c20230101to20231231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.9</ix:nonFraction> million of share-based compensation expense for 2024
      and 2023, respectively, included primarily in general and administrative expense in our Consolidated Statements of Operations.&#160; We also
      recorded income tax benefits of $<ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" id="Fact_cc84785e11424776bdc9345eafed4a16" contextRef="c20240101to20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.3</ix:nonFraction> million in 2024 and $<ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" id="Fact_53b959e20edc4df9a874d81e00492d2a" contextRef="c20230101to20231231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million in&#160;2023, related to such share-based compensation.&#160; At December 31,
      2024, these benefits are recorded as a deferred tax asset in the Consolidated Balance Sheets.</div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc35" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc36">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc36" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc37">
<div style="text-align: left;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc37" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc38"><ix:nonNumeric name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="Text_629fd486a6bb45a4a9c5750f6f4cd8a8" contextRef="c20240101to20241231" escape="true" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e1">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, as amended, is summarized below:</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc38" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc39"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e1" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e2">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc39" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc40"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e2" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e3">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc40" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc41"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e3" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e4">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc41" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc42"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e4" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e5">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;"><br/>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">
            <div style="text-align: center; color: rgb(0, 0, 0);">Stock Options</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">
            <div style="text-align: center; color: rgb(0, 0, 0);">Restricted Stock Units</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">
            <div style="text-align: center; color: rgb(0, 0, 0);">Number of Shares</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">
            <div style="text-align: center; color: rgb(0, 0, 0);"> Average Price*</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">
            <div style="text-align: center; color: rgb(0, 0, 0);">Number of Units</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">
            <div style="text-align: center; color: rgb(0, 0, 0);">Average Price**</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0);">Outstanding at December 31, 2023</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" id="Fact_a3b1e8e9ed4a465d985df513b9d9f818" contextRef="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">1,314,475</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" id="Fact_b3db755b52a54323b23037bcd2bd07f2" contextRef="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">8.82</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" id="Fact_e165a6d9c50347efaf6c52c42962644d" contextRef="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">184,536</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_581017b20eb1438cb1a6673b1a2cad30" contextRef="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">7.76</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Granted</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" id="Fact_bbd8ee52a40d47258d4dd4e85d7e8ce5" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">179,700</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" id="Fact_37f9e617256946a08e5fb8778c091f57" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">6.80</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" id="Fact_c899d100653e4432b43e8eccd1663388" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">267,024</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" id="Fact_11c1cde366ba4c0f934c1b4137718d0b" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">5.81</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Exercised</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_ccbf9c1c44074456956f1727d36a0690" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="INF" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" id="Fact_b348fca154ba44d4b941466d559c1e04" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="0" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" id="Fact_472fc97c49604c799a05ebd3148bf306" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">74,995</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" id="Fact_e08d5b677b7041a983641c8cba1f54b8" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">7.41</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Forfeited</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" id="Fact_75ee12e441614a86bf15f0a5d6da4b54" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">7,750</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" id="Fact_64011356dfb94e76a412184b86da6b6d" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">7.11</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" id="Fact_905271282a2b4764a111664bb7a156b7" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="INF" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" id="Fact_1a350868eedf479e825e885b866ad436" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="0" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Expired</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" id="Fact_c0b419679d4743b48619f20b7c094a3b" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">109,312</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" id="Fact_3fb53e09c1724244888528d1d0ec8b77" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">10.71</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" id="Fact_202deb8398384b649e1513404777f969" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="INF" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" id="Fact_8d70da87f96f48cca2f3009259a3fbf3" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="0" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0);">Outstanding at December 31, 2024</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" id="Fact_aa1fe91353144d9c92cda2fecec53897" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">1,377,113</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" id="Fact_1928e9b6c64a42fba5f539b786fd81d0" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">8.41</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" id="Fact_0b14b6ffa8314245bfa5cbd96603921a" contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">376,565</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;">
            <div>
              <div style="color: rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_8c509495d7b0448eb8d857ea64ac5982" contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">6.44</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc42" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc43"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e5" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e6">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc43" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc44"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e6" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e7">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc44" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc45"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e7" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e8">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc45" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc46"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e8" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e9">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">*</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:footnote id="Foot_02c9893d755d46e09c2c806bd0739d14" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">weighted average exercise price per share</ix:footnote></div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc46" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc47"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e9" continuedAt="Text_5ae76302a9ee491b870c820b502ca60e10">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc47" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc48"><ix:continuation id="Text_5ae76302a9ee491b870c820b502ca60e10">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">**</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:footnote id="Foot_42b55853fb414ccdba8ab0b20970caa0" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">weighted average grant stock price per share</ix:footnote></div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc48" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc49">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">
    </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc49" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc50">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc50" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc51">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc51" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc52"><ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" id="Text_b4ce87dfa5d941c482369c20af06926f" contextRef="c20240101to20241231" escape="true" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6671">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2024:</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc52" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc53"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6671" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6672">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc53" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc54"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6672" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6673">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc54" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc55"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6673" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6674">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc55" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc56"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6674" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6675">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
            </span></td>

    <td valign="bottom" colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity Awards Vested and Expected to Vest</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity Awards That Are Exercisable</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Awards</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Average Price*</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Aggregate </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Intrinsic </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Value</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining Term**</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Awards</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Average Price*</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Aggregate </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Intrinsic </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Value</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining Term**</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Stock Options</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" id="Fact_4f56920a4a974d129f23f89b86076219" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">1,377,113</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" id="Fact_1d2c57d04e57448380172b161b182ba6" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">8.41</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" id="Fact_e9ac8e0df8d144e480f84a4ceae7b938" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Fact_405c8e86ab1b4e299f867ea0322c0700" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" format="ixt-sec:duryear">4.1</ix:nonNumeric></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" id="Fact_386aac54c13048f79f7b309e7273f511" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">973,963</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" id="Fact_7d0fbb8fba164e83b0ba0879dc808e46" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">8.96</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" id="Fact_249030739a984843818c29613e0b408f" contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" id="Fact_5b50415d1fad4424be3cfa35ffa9f759" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" format="ixt-sec:duryear">2.2</ix:nonNumeric></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 20%;">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Restricted stock units</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" id="Fact_03d365a2d5754633874b1fe10428aa75" contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">376,565</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" id="Fact_7c5b53a1c8534156a0305a063082151f" contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="0" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" id="Fact_19d40c23d1ba45cdad548198d701385a" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,540</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Fact_8d32d3a74ea340de87f2908c5ec778b2" contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" format="ixt-sec:duryear">2.1</ix:nonNumeric></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc56" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc57"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6675" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6676">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc57" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc58"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6676" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6677">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc58" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc59"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6677" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6678">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc59" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc60"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6678" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a6679">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">*</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted average exercise price per share</div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc60" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc61"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a6679" continuedAt="Text_4eb35c8c29864240a0513ee1ddb6a66710">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc61" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc62"><ix:continuation id="Text_4eb35c8c29864240a0513ee1ddb6a66710">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;" class="DSPFListTable">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">**</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><ix:footnote id="Foot_ed18f58ee254452faf20859044f9d9f9" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">weighted-average contractual remaining term in
              years</ix:footnote></div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc62" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc63">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc63" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc64">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc64" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc65">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc65" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc66">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Shares that are issued upon exercise of employee stock awards are newly issued shares and not issued from treasury stock.&#160; As of December 31, 2024, unrecognized compensation cost related to non-vested equity awards granted under our stock incentive plans is approximately $<ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" id="Fact_a67639763bf6470fbf84bb3f21f02931" contextRef="c20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">2.7</ix:nonFraction> million, which is expected to be recognized over a weighted average period of <ix:nonNumeric name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Fact_134e4ffee0c24a1fab719f67eec1010e" contextRef="c20240101to20241231" format="ixt-sec:duryear">2.7</ix:nonNumeric> years.</div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc66" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc67">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc67" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc68">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc68" continuedAt="Text_50ca49b6809a46d69db558e9f0ea4efc69">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>
</ix:continuation>
    <ix:continuation id="Text_50ca49b6809a46d69db558e9f0ea4efc69">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The total fair value of awards vested was $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" id="Fact_e3308d52a31848c89dd573b525e36cf8" contextRef="c20240101to20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.9</ix:nonFraction>
      million and $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" id="Fact_5cebe7098bd647afa050f6acca4dae88" contextRef="c20230101to20231231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.3</ix:nonFraction> million during the years ended December 31, 2024 and 2023, respectively.&#160; The total intrinsic value (which
      is the amount by which the stock price exceeded the exercise price on the date of exercise) of stock options exercised during the years ended December 31, 2024
      and 2023 was <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" id="Fact_e84f6fd400ed412caeba05c77f123640" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt-sec:numwordsen">zero</ix:nonFraction> and $<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" id="Fact_3f719c4b0a0e42acbd49fd624a9abbfb" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3</ix:nonFraction> thousand, respectively, and cash received from option exercises was <ix:nonFraction name="us-gaap:ProceedsFromStockOptionsExercised" id="Fact_fb61c9620b744f49be0e6a8f9220dd2e" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:ProceedsFromStockOptionsExercised" id="Fact_928439d00e404efda4a0bc2b11ef7e75" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt-sec:numwordsen">zero</ix:nonFraction></ix:nonFraction> in both 2024 and 2023. <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_168b25a87c0c4a53aab33b408272947f" contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="INF" sign="-" scale="0" format="ixt-sec:numwordsen">Zero</ix:nonFraction> and <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_18797389d8104253885f5371e3e58374" contextRef="c20230101to20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">1,875</ix:nonFraction> stock options were exercised during the year ended December 31, 2024
      and 2023, respectively. We recorded <ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" id="Fact_6b462a0285eb4f49b8669a5155dae927" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" id="Fact_12c33fbe255b4267b0454cb3a47c8962" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt-sec:numwordsen">zero</ix:nonFraction></ix:nonFraction>
      realized tax provision in 2024 and 2023
      from equity-based awards, related to options exercised.</div>
</ix:continuation>
    <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

    <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div style="text-align: center;" class="BRPFPageNumberArea"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-21</span></div>

      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div class="BRPFPageHeader" style="width: 100%;">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

    <div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">
  <ix:nonNumeric name="us-gaap:IncomeTaxDisclosureTextBlock" id="Text_762da0a85f5b417aa5d8f3d477394e38" contextRef="c20240101to20241231" escape="true" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb881">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">11. Income taxes</div>
</ix:nonNumeric>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb881" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb882">
<div><br/>
  </div>
</ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb882" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb883"><ix:nonNumeric name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="Text_4c3ec231e79241219f4c528df41dbdac" contextRef="c20240101to20241231" escape="true" continuedAt="Text_578baa55dc6c47e89d0acdde55e53fd71">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of the income tax expense are as follows:</div>
</ix:nonNumeric></ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb883" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb884"><ix:continuation id="Text_578baa55dc6c47e89d0acdde55e53fd71" continuedAt="Text_578baa55dc6c47e89d0acdde55e53fd72">
<div><br/>
  </div>
</ix:continuation></ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb884" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb885"><ix:continuation id="Text_578baa55dc6c47e89d0acdde55e53fd72">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
          <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
          <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Current:</div>
        </td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:CurrentFederalTaxExpenseBenefit" id="Fact_58f59428ae794a78b5d7be6dad6e6309" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">154</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:CurrentFederalTaxExpenseBenefit" id="Fact_b9cc23d441a8421daea99821a44ebbbe" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" id="Fact_891d5dcf91e24f3f8d45dc9c9d8efa33" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">37</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" id="Fact_cb205870e3734690a2d8eb47151cf0a0" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">51</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentForeignTaxExpenseBenefit" id="Fact_9ab2585449b748b4b8e9c5576f4cf47c" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">108</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentForeignTaxExpenseBenefit" id="Fact_3d07b993055f4c089850c67a14217313" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">85</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:CurrentIncomeTaxExpenseBenefit" id="Fact_265b460420b0487596636969512af2bf" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentIncomeTaxExpenseBenefit" id="Fact_eff4977fb9cf4ace87489df9c57e3caf" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">135</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred:</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" id="Fact_b1e7fabfc9984d6b8de684bceb628db9" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,991</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" id="Fact_e642edc5eb4e4cb49fd017aaf26dfab6" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">825</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" id="Fact_a307d73353864ec1bf0b215532b3491c" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">293</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" id="Fact_e510a877bdb44aaba269d51ad3fb9a22" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">132</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" id="Fact_664fd4092d764ae9b0d27cd6709ba795" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">20</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" id="Fact_0bbf0956eada4e8d89a0137308fb878b" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">63</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_f96548c02ebd4f5887b7f59c6a1c2d12" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,304</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_1dd908547fd948ceba8b8bb9ef4a95e3" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,020</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Income tax expense<br/>
            </div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_e49fd8c94c8c4df6a58a97cb639adbbe" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,295</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_97f88a803f934d698ed612b2a3388013" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,155</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb885" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb886">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"> <br/>
    </span></div>
</ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb886" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb887">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);">Our effective tax rates were </span>(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_9c5337e103e942e98cc399b510f32f94" contextRef="c20240101to20241231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">176.4</ix:nonFraction>%)<span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"> and </span><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_74fa5995f225484986da8d991c5a5c3e" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">19.6</ix:nonFraction>%<span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"> for </span>2024<span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"> and </span>2023<span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);">, respectively.</span> Our 2024 tax rate was impacted by an income tax charge of $<ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" id="Fact_c4788959ca1b493aa8d69dff07d920e4" contextRef="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">7.3</ix:nonFraction> million related to the write down of our U.S. net deferred income tax asset as more fully described below.</div>
</ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb887" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb888">
<div><br/>
  </div>
</ix:continuation>
  <div>
    <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb888" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb889">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">At December 31, 2024, we have $<ix:nonFraction name="tact:OperatingLossCarryforwardsNotSubjectToExpiration" id="Fact_a587fe7fd9ef4b7b9fafa581475feea8" contextRef="c20241231_IncomeTaxAuthorityAxis_DomesticCountryMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">276</ix:nonFraction> thousand of federal net operating loss carryforwards which can be carried over indefinitely, $<ix:nonFraction name="tact:OperatingLossCarryforwardsSubjectToExpiration" id="Fact_bf17da6a6cd24eb291a0421449f75652" contextRef="c20241231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">135</ix:nonFraction> thousand of state net operating loss carryforwards which expire in various years,&#160; $<ix:nonFraction name="tact:TaxCreditCarryforwardAmountSubjectToExpiration" id="Fact_7b7485d306f6444b89904347aee6b07c" contextRef="c20241231_TaxCreditCarryforwardAxis_ResearchMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">903</ix:nonFraction>
      thousand of R&amp;D credit carryforwards which can be carried forward for <ix:nonNumeric name="tact:TaxCreditCarryforwardExpirationPeriod" id="Fact_6e2d5dad2d3449478dc2176a6058635a" contextRef="c20240101to20241231_TaxCreditCarryforwardAxis_ResearchMember" format="ixt-sec:duryear">20</ix:nonNumeric> years, and <ix:nonFraction name="tact:TaxCreditCarryforwardAmountSubjectToExpiration" id="Fact_8130ae56076840d7a0f2e967c5bd8129" contextRef="c20241231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember" unitRef="U001" decimals="-6" scale="6" format="ixt-sec:numwordsen">no</ix:nonFraction> state tax credit carryforwards.&#160; All of these items have a full valuation allowance against them as of December 31, 2024.&#160; Foreign income before taxes was $<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" id="Fact_156305ab372b4fa29846a10513ec85f3" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">79</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" id="Fact_bcbe2bc4829a4f2695c95662fd33175f" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">322</ix:nonFraction> thousand in&#160; 2024 and 2023, respectively.</div>
</ix:continuation>
  </div>

  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb889" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8810">
<div><br/>
  </div>
</ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8810" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8811"><ix:nonNumeric name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="Text_623cf2a1daa64270a86c67eb451df3ce" contextRef="c20240101to20241231" escape="true" continuedAt="Text_3b340cc66e6c4b84b1c81361679c82f61">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our
    deferred tax assets and liabilities were comprised of the following:</div>
</ix:nonNumeric></ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8811" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8812"><ix:continuation id="Text_3b340cc66e6c4b84b1c81361679c82f61" continuedAt="Text_3b340cc66e6c4b84b1c81361679c82f62">
<div><br/>
  </div>
</ix:continuation></ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8812" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8813"><ix:continuation id="Text_3b340cc66e6c4b84b1c81361679c82f62">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
          <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" rowspan="1" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" rowspan="1" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" rowspan="1" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" rowspan="1" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" rowspan="1" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" rowspan="1" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
          <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax assets:</div>
        </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal net operating losses</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" id="Fact_0dbf86e73a0b4fecbdb1c20cc2787882" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">276</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" id="Fact_19d902eb6bb8453f918fd4a0f47bb790" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign net operating losses</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" id="Fact_4b357fc2fc774f50a1895f10583fe099" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">802</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" id="Fact_85d62178cc2945f3b00355ea694ac1b3" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">733</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State net operating losses</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" id="Fact_e06499e053e94e35860cfd198808fb9c" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">135</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" id="Fact_8c7cee07c4574bbea3bbdfa45acac230" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">84</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accrued severance</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" id="Fact_883948f6005344dfb9a499bbdb56849a" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">20</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" id="Fact_3bb70356272540dba4ae9db60d56591e" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">165</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Capitalized R&amp;D expenses</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment" id="Fact_7c4a3e6a745b4a4c8f576200a8484132" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,708</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment" id="Fact_28cb2ee8fdad4d019c095bb2c163326e" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,127</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Inventory reserves</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsInventory" id="Fact_e3bb4e65edc647f78fd648a483d6ccf9" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,047</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsInventory" id="Fact_650a7dbdaeb7454686a15578c1074a9b" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">896</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsDeferredIncome" id="Fact_ff6d5f4029ef4d9bba2302fa1cad6172" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsDeferredIncome" id="Fact_01bdf134e7f140db9666f0c877cbb7ee" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">31</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Warranty reserve</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" id="Fact_a9a9650eea97483d96f5aeca06a05650" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">29</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" id="Fact_08502ce4b6bb4355a14cde33be2537b4" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock compensation expense</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" id="Fact_106736ac5678413d9764f0c217d08bdf" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">853</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" id="Fact_2c1d494a838146ff86e8c3c30ee2a6cd" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">790</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other accrued compensation</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" id="Fact_257a6d4c97cc41f88fd3d6d1f5ef0ac1" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">165</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" id="Fact_0a82e453e0d842fbbe3312c7fc696dc8" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">404</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">R&amp;D credit carryforward</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" id="Fact_3c31cf5da6494cf3afe7d0981102cf23" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">903</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" id="Fact_e5c319d038824db2a9a8ebe59da53550" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">695</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
          <div style="margin-left: 9pt; text-indent: 0pt;">Other Assets<br/>
          </div>
        </td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOther" id="Fact_9c4bf0438d6149efb767129e5e9ee791" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">379</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOther" id="Fact_8f43a01fe9d64b7ebf352eebb43cd214" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">360</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross deferred tax assets</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsGross" id="Fact_33a344f00e794330a949669c870966d5" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,324</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsGross" id="Fact_1b3f138515a74dbf809a1d81f8cf9e74" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,309</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Valuation allowance</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredTaxAssetsValuationAllowance" id="Fact_7f3262eaf2eb41b39310fdad89f888d4" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,103</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredTaxAssetsValuationAllowance" id="Fact_0b9bdcb563e24087ae198bed9454b8b3" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">719</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -18pt; margin-left: 45pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net deferred tax assets</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsNet" id="Fact_cd2ca16d21b54488b03e6c5f211b86f4" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">221</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsNet" id="Fact_b65f27a5b5f04789a0b5eae9f4e30617" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,590</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax liabilities:</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Depreciation and amortization<br/>
            </div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" id="Fact_04bdf3b9df0d400196349d578b9aeb52" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">179</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" id="Fact_b59a3c19ce69486f97654db5172b1a30" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">237</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilitiesOther" id="Fact_0140ec0eda5d4813af8d17da00dab7c8" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">42</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilitiesOther" id="Fact_fceeee05f6e445f1890dd023fed85ad0" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">49</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net deferred tax liabilities</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilities" id="Fact_de4e4761667745ee97f6948a2b4b69d4" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">221</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilities" id="Fact_6b83f02d662f49498ac8547e08da49b7" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">286</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total net deferred tax assets</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsLiabilitiesNet" id="Fact_20c9fcc1d4794c3bb0f3c5a1a00d328a" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsLiabilitiesNet" id="Fact_ca5a4079805443e79c2c02d232d1c183" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,304</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>
  <div style="text-align: left; font-family: 'Times New Roman'; font-size: 12pt;">
    <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8813" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8814">
<div><br/>
    </div>
</ix:continuation>
    <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div class="BRPFPageFooter" style="width: 100%;"></div>

      <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-22</span></div>

      <div class="BRPFPageBreak" style="page-break-after: always;">
        <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

      <div style="width: 100%;" class="BRPFPageHeader">
        <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

      </div>

    </div>

  </div>

  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8814" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8815"><ix:nonNumeric name="us-gaap:SummaryOfValuationAllowanceTextBlock" id="Text_ee4413c3e26a485394a68ad2b5355c39" contextRef="c20240101to20241231" escape="true" continuedAt="Text_02d1b023f4aa43ab86ad94e281c02b1c1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">As of December 31, 2024 and 2023, we had $<ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_57469c086c3b4ee0bd344e86deeecd57" contextRef="c20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">8.1</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_9a525c029e774efc9d77feacaed26c5d" contextRef="c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">719</ix:nonFraction> thousand, respectively,
    of valuation allowance against our deferred income tax assets. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:</div>
</ix:nonNumeric></ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8815" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8816"><ix:continuation id="Text_02d1b023f4aa43ab86ad94e281c02b1c1" continuedAt="Text_02d1b023f4aa43ab86ad94e281c02b1c2">
<div><br/>
  </div>
</ix:continuation></ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8816" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8817"><ix:continuation id="Text_02d1b023f4aa43ab86ad94e281c02b1c2">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="7">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31,</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
          <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="3">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="3">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_647f6482a55a438ebffb660a75ec3ac6" contextRef="c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">719</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_4801d8aea175440c9c0a6943d139c555" contextRef="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">656</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Additions charged to income tax provision</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" id="Fact_5faf4befeb55450ebc3cf34f33e4869e" contextRef="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,384</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" id="Fact_82ab3c3144134329aa3b4d79fd0e7a4c" contextRef="c20230101to20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">63</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_6a015c4af0ed495c97e4787357d026c6" contextRef="c20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,103</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_4ecfa99d5b2345c1bf3307f0da94c15e" contextRef="c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">719</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

  <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8817" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8818">
<div><br/></div>
</ix:continuation>
    <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8818" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8819">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Valuation allowances are recorded to reduce deferred tax assets when it is more likely than not (greater than 50%) that a tax benefit will not be realized.&#160; In
      evaluating the need for a valuation allowance, management considers all potential sources of taxable income, including income available in carryback periods, future reversals of taxable temporary differences, projections of taxable income, income
      from tax planning strategies, as well as all available positive and negative evidence.&#160; Positive evidence includes factors such as a history of profitable operations, projections of future profitability within the carryforward period, including any
      potential tax planning strategies.&#160; Negative evidence includes items such as cumulative losses and projections of future losses.&#160; Upon changes in facts and circumstances, management may conclude that deferred tax assets for which no valuation
      allowance is currently recorded may not be realized, resulting in a charge to establish a valuation allowance.&#160; Existing valuation allowances are re-examined under the same standards of positive and negative evidence. If it is determined that it is
      more likely than not that a deferred tax asset will be realized, the appropriate amount of the valuation allowance, if any, is released.&#160; Deferred tax assets and liabilities are also re-measured to reflect changes in underlying tax rates due to law
      changes and the granting and lapse of tax holidays.</div>
</ix:continuation>
    <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8819" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8820">
<div><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8820" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8821">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">In 2024, TransAct recognized a $<ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" id="Fact_143571e25df14f1aa50ccb4aa2116f3b" contextRef="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">7.3</ix:nonFraction> million discrete
      income tax charge for a valuation allowance on the full value of the net deferred tax assets in the United States. After weighing all available positive and negative evidence, as described above, management determined that it was no longer more
      likely than not that TransAct will realize the tax benefit of these deferred tax assets. This was mainly driven by&#160; a cumulative taxable loss experienced over the previous three fiscal years (2022 through 2024) combined with a near term outlook of
      future taxable losses.&#160; The need for this valuation allowance will be assessed on a continuous basis in future periods and, as a result, a portion, or all of the allowance, may be reversed based on changes in facts and circumstances.</div>
</ix:continuation>
    <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8821" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8822">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation>
  </div>


  <ix:nonNumeric name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="Text_f967806729524cd0984e96a28243bfde" contextRef="c20240101to20241231" escape="true" continuedAt="Text_cf0fbaaba96f4e998022cf0c017fae611"><ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8822" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8823">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:</span></div>
</ix:continuation></ix:nonNumeric>
  <ix:continuation id="Text_cf0fbaaba96f4e998022cf0c017fae611" continuedAt="Text_cf0fbaaba96f4e998022cf0c017fae612"><ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8823" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8824">
<div><br/>
  </div>
</ix:continuation></ix:continuation>
  <ix:continuation id="Text_cf0fbaaba96f4e998022cf0c017fae612"><ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8824" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8825">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31,</div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal statutory rate</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" id="Fact_bf85e39fbf854afdb86b0a4319412ca1" contextRef="c20240101to20241231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">21.0</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" id="Fact_53d95a641df844d4bccfcd578d274136" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">21.0</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">R&amp;D credit</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" id="Fact_7f8451f43b2e4f3da15a86fca3fd4f3e" contextRef="c20240101to20241231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">8.8</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" id="Fact_61ac3d6e1ef843ef9a3efae9bee44565" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">5.9</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">Foreign-derived intangible income deduction <br/>
        </td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationFdiiPercent" id="Fact_31798e72a283466588b77f0c2935347a" contextRef="c20240101to20241231" unitRef="U006" decimals="3" scale="-2" format="ixt:fixed-zero">&#8211;</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationFdiiPercent" id="Fact_ecbc61d7be544f41bbbcef0cd926c2bf" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">1.7</ix:nonFraction></td>

    <td valign="bottom" colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">)</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock award excess tax benefit</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" id="Fact_e68f5a06e9ac4fcca11aabeefc552acb" contextRef="c20240101to20241231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.7</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" id="Fact_ad117841420242238637981d0ec886fd" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.4</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State income taxes, net of federal income taxes</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" id="Fact_2e55ecffab9f44cf8590dfdb408558d6" contextRef="c20240101to20241231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">1.0</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" id="Fact_b29c76ae06b446b7b9dfacdc20c3b951" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">2.5</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Business meals and entertainment</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" id="Fact_a1825723a1f040e48442afeea964b7b6" contextRef="c20240101to20241231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.4</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" id="Fact_f75c18694412491986ab171323ff7fbb" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.3</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Executive compensation limitation</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="tact:EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" id="Fact_9d7c1b08def749668ce1dab2092bad23" contextRef="c20240101to20241231" unitRef="U006" decimals="3" scale="-2" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="tact:EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" id="Fact_fd084b7853c54365944a2fe80523b8eb" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.6</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Uncertain tax positions</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies" id="Fact_23c89f232a5844679fc27002d86166e1" contextRef="c20240101to20241231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.2</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies" id="Fact_f8228dd60a98443eaf3f0a5f3a40e955" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.5</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock option cancellations</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" id="Fact_93ba68e753324931803e0737ded2f9f8" contextRef="c20240101to20241231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">2.0</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" id="Fact_8fd5f855d489445b863a969122a544f3" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.6</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Change in valuation allowance<br/>
            </div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" id="Fact_3b389dab5a294dd790fe8dd002b4cae6" contextRef="c20240101to20241231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">206.9</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" id="Fact_cc9d11fe340c42eaa320f79820413942" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">1.0</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" id="Fact_2570933ad97b4bb8b660ae5a9299316a" contextRef="c20240101to20241231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">3.0</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" id="Fact_c4b5f62f13d3426ca42f2d59ccf8fb81" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.3</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Effective tax rate</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_a92eccd29e354e41b42b9e51bb4a5ec4" contextRef="c20240101to20241231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">176.4</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%)</div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_c5cc501b2761428ea6dcf34211e05b8e" contextRef="c20230101to20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">19.6</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </td>

  </tr>


</table>
</ix:continuation></ix:continuation>

  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8825" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8826">
<div><br/>
  </div>
</ix:continuation>
  <div class="BRPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
    <div class="BRPFPageFooter" style="width: 100%;"></div>

    <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-23</span></div>

    <div class="BRPFPageBreak" style="page-break-after: always;">
      <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

    <div style="width: 100%;" class="BRPFPageHeader">
      <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

    </div>

  </div>

  <!--PROfilePageNumberReset%Num%52%%%-->
  <ix:nonNumeric name="us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" id="Text_915844539b6c4236aaf36565f09643d0" contextRef="c20240101to20241231" escape="true" continuedAt="Text_3cc341fb62944992b9f10e80f462a6921"><ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8826" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8827">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We had $<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_df69bc164e9f4fd69f1f5a9e3383747d" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">203</ix:nonFraction> and $<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_0ec02a24d0a240db940ea6dcca6fc9d5" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">197</ix:nonFraction> thousand of total gross unrecognized tax benefits at December 31, 2024 and 2023, respectively that, if recognized, would favorably affect the
    effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the
    gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:</div>
</ix:continuation></ix:nonNumeric>
  <ix:continuation id="Text_3cc341fb62944992b9f10e80f462a6921" continuedAt="Text_3cc341fb62944992b9f10e80f462a6922"><ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8827" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8828">
<div><br/>
  </div>
</ix:continuation></ix:continuation>
  <ix:continuation id="Text_3cc341fb62944992b9f10e80f462a6922"><ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8828" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8829">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="6">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
          <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="2">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
          <div>
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_7a3da92e81f7434da9147c25e0b49bf9" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">197</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_5f0725923a0f4baeb37954f0b3158043" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">142</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Tax positions taken during the current period</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease" id="Fact_7340cf09f61349499d9dc6aac52d2a3c" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">31</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease" id="Fact_dc3a70cc2bcd403a8b234da006c90447" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">83</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" rowspan="1">Reductions for tax positions in prior years <br/>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" rowspan="1" colspan="1">(<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" id="Fact_18b3e1b659384b138a3444701b8bbb73" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">25</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">)</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" rowspan="1" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" rowspan="1" colspan="1"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" id="Fact_1533bb1f34d642f591be386307a1d7ae" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" rowspan="1" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Lapse of statute of limitations</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" id="Fact_2b2262b6469e4793b2b75b44092a59c6" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" id="Fact_2b107d0d2ce743da938df1e41813b4a5" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">28</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">
          <div>
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
          </div>
        </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_e4b08e2b407e486ca23f7dc61f4b93cb" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">203</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" colspan="1">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_317a62c0802e447796e544235562ad12" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">197</ix:nonFraction></div>
          </div>
        </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8829" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8830">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
  </div>
</ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8830" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8831">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We recognize interest and penalties related to uncertain tax positions in the income tax provision.</div>
</ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8831" continuedAt="Text_b2f5271b3605455fa19b8f0e8b8fcb8832">
<div><br/>
  </div>
</ix:continuation>
  <ix:continuation id="Text_b2f5271b3605455fa19b8f0e8b8fcb8832">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We are subject to U.S. federal income tax as well as income tax of certain state and foreign jurisdictions.&#160; We have substantially concluded all U.S.
    federal income tax, state and local, and foreign tax matters through 2019.&#160; However, our federal tax returns for the years 2021 through 2024 remain open to examination. Various state and foreign tax jurisdiction tax years remain open to examination as
    well, though we believe that any additional assessment would be immaterial to the Consolidated Financial Statements.</div>
</ix:continuation>
  <div><br/>
  </div>

  <div class="BRPFPageFooter" style="width: 100%;"></div>

</div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">
    <!--PROfilePageNumberReset%Num%23%F-%%-->
    <ix:nonNumeric name="us-gaap:EarningsPerShareTextBlock" id="Text_e8296c5992864d07bfb0bb75feff0aeb" contextRef="c20240101to20241231" escape="true" continuedAt="Text_7b395140edfe4c979538b2c1a66e57c61">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">12. Earnings per share</div>
</ix:nonNumeric>
    <ix:continuation id="Text_7b395140edfe4c979538b2c1a66e57c61" continuedAt="Text_7b395140edfe4c979538b2c1a66e57c62">
<div><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_7b395140edfe4c979538b2c1a66e57c62" continuedAt="Text_7b395140edfe4c979538b2c1a66e57c63"><ix:nonNumeric name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" id="Text_9c1248e04f7c415cad93855f7da486ad" contextRef="c20240101to20241231" escape="true" continuedAt="Text_59c018593c2a49928d0c82f39496b3e51">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Earnings per share was computed as follows (in thousands, except per share amounts):</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_7b395140edfe4c979538b2c1a66e57c63" continuedAt="Text_7b395140edfe4c979538b2c1a66e57c64"><ix:continuation id="Text_59c018593c2a49928d0c82f39496b3e51" continuedAt="Text_59c018593c2a49928d0c82f39496b3e52">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_7b395140edfe4c979538b2c1a66e57c64" continuedAt="Text_7b395140edfe4c979538b2c1a66e57c65"><ix:continuation id="Text_59c018593c2a49928d0c82f39496b3e52">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"> </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income<br/>
              </div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_396a1c28d04a4ec7a6fa808cbb2dfffd" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,863</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_2e629e349bc747c1b4ee964b8613b6d5" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,748</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Shares:</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic:&#160; Weighted average common shares outstanding</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_22819547b02242619c3cba3e2c2a1175" contextRef="c20240101to20241231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,997</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_8978c79845f24dd7bbb22ab0951c1f7f" contextRef="c20230101to20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,951</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" id="Fact_5efb44cfd4ee4f00ae7d4fe557f27a36" contextRef="c20240101to20241231" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" id="Fact_9a9e54f08def4d2ba295d091170a5f1d" contextRef="c20230101to20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">70</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted:&#160; Weighted average common and common equivalent shares outstanding</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_bbf4167982974831b2964b512cf02a38" contextRef="c20240101to20241231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,997</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_23c02d1858d648ada62c50544547b362" contextRef="c20230101to20231231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,021</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income per common share:</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_99c8a1eee344436da81bbaf18a18e5e5" contextRef="c20240101to20241231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.99</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_2dcc25334a4845ab90929ab45ab78094" contextRef="c20230101to20231231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.48</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_d9979d441c4447639c155eadec89caf9" contextRef="c20240101to20241231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.99</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_aed33045e2ef42b79bf1a101c0f99f62" contextRef="c20230101to20231231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.47</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>

    <ix:continuation id="Text_7b395140edfe4c979538b2c1a66e57c65" continuedAt="Text_7b395140edfe4c979538b2c1a66e57c66">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_7b395140edfe4c979538b2c1a66e57c66">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, restricted
      stock units and performance stock awards, when the average market price of the common stock is lower than the exercise price of the related stock award during the period.&#160; These outstanding stock awards are not included in the computation of diluted
      earnings per share because the effect would be anti-dilutive.&#160; Furthermore, in periods when a net loss is reported, such as in 2024, basic and diluted net loss per common share are calculated using the same method.&#160; Anti-dilutive option awards
      excluded from the computation of earnings per dilutive share were <ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" id="Fact_b9b6c9396361482d9af0f5507f9b11fc" contextRef="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.4</ix:nonFraction> million and <ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" id="Fact_4370655e79bc438d8f84963773b3e961" contextRef="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_EmployeeStockOptionMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.1</ix:nonFraction> million at December 31, 2024 and 2023, respectively. Anti-dilutive restricted stock awards excluded from the computation of earnings per dilutive share were <ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" id="Fact_4a1e4b3a1d5149e3943b3ea4db4e23d2" contextRef="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_RestrictedStockMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.3</ix:nonFraction> million and <ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" id="Fact_332d939875ea4822be179a82fc37f5e6" contextRef="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_RestrictedStockMember" unitRef="U002" decimals="-6" scale="6" format="ixt-sec:numwordsen">zero</ix:nonFraction> at December 31, 2024
      and 2023, respectively. Anti-dilutive performance stock awards excluded from the computation of earnings per dilutive share were <ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" id="Fact_1064a536c7344c4999adb21450392704" contextRef="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_PerformanceSharesMember" unitRef="U002" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.1</ix:nonFraction>
      million and <ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" id="Fact_8c020321e6d848ccadcd1c0e3c008543" contextRef="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_PerformanceSharesMember" unitRef="U002" decimals="-6" scale="6" format="ixt-sec:numwordsen">zero</ix:nonFraction> at December 31, 2024 and 2023, respectively.</div>
</ix:continuation>

    <div><br/>
    </div>

  </div>

  <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
    <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-24</span></div>

    <div style="page-break-after: always;" class="BRPFPageBreak">
      <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

    <div style="width: 100%;" class="BRPFPageHeader">
      <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

    </div>

  </div>

</div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:TreasuryStockTextBlock" id="Text_afa424e1d2f745359b3dc0cccf9a8c42" contextRef="c20240101to20241231" escape="true" continuedAt="Text_685a4743faae46b2903ddc987fb815631">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">13. Stock repurchase program</div>
</ix:nonNumeric>
    <ix:continuation id="Text_685a4743faae46b2903ddc987fb815631" continuedAt="Text_685a4743faae46b2903ddc987fb815632">
<div style="text-align: justify;"><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_685a4743faae46b2903ddc987fb815632">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We use the cost method to account for treasury stock purchases, under which the price paid for the stock is charged to the treasury stock account.&#160;
      Repurchases of our common stock are accounted for as of the settlement date.&#160; During 2024 and 2023, we did <ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodShares" id="Fact_f194b08f33404d8988d2a2f0eec9c1b8" contextRef="c20230101to20231231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodShares" id="Fact_73df738d49e549cbb09b70847f272469" contextRef="c20240101to20241231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction>t repurchase any shares of our common stock.&#160;
      From January 1, 2005 through December 31, 2019, we repurchased a total of <ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodShares" id="Fact_105587780b5442aaa621897ce7e11bba" contextRef="c20050101to20191231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">4,044,842</ix:nonFraction> shares of common stock for $<ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodValue" id="Fact_95b9a69e182849fa8045153726bdc756" contextRef="c20050101to20191231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">32.1</ix:nonFraction> million, at an average price of $<ix:nonFraction name="us-gaap:TreasuryStockAcquiredAverageCostPerShare" id="Fact_7f88cc0640d84c38848efe0ec89d362c" contextRef="c20050101to20191231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">7.94</ix:nonFraction>
      per share.</div>
</ix:continuation>
    <div><br/>
    </div>

    <!--PROfilePageNumberReset%Num%19%F-%%-->
  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="tact:GeographicAreaInformationTextBlock" id="Text_939bef70c0d64540892a844d8725a94a" contextRef="c20240101to20241231" escape="true" continuedAt="Text_317d365165824e828b002b2be49dfcc11">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">14. Geographic area information</div>
</ix:nonNumeric>
    <ix:continuation id="Text_317d365165824e828b002b2be49dfcc11" continuedAt="Text_317d365165824e828b002b2be49dfcc12">
<div><br/>
    </div>
</ix:continuation>

    <ix:nonNumeric name="us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" id="Text_4a17fe339a4c458782cf20512587781c" contextRef="c20240101to20241231" escape="true" continuedAt="Text_06e3b90fb3bd4e82b075efd69f87441e1"><ix:continuation id="Text_317d365165824e828b002b2be49dfcc12" continuedAt="Text_317d365165824e828b002b2be49dfcc13">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the
      location of the customer and asset.</div>
</ix:continuation></ix:nonNumeric>
    <ix:continuation id="Text_06e3b90fb3bd4e82b075efd69f87441e1" continuedAt="Text_06e3b90fb3bd4e82b075efd69f87441e2"><ix:continuation id="Text_317d365165824e828b002b2be49dfcc13" continuedAt="Text_317d365165824e828b002b2be49dfcc14">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_06e3b90fb3bd4e82b075efd69f87441e2"><ix:continuation id="Text_317d365165824e828b002b2be49dfcc14" continuedAt="Text_317d365165824e828b002b2be49dfcc15">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales:</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_6c14eca1222c4a3cbe99f3421cfc40e8" contextRef="c20240101to20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">33,485</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_e35d3d9733fd48b6bc33f8931e59e478" contextRef="c20230101to20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">58,060</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">International</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_77acacb894554e99abd4b4500072458b" contextRef="c20240101to20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,899</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_451282ca64504e35aed69b8b2b25c378" contextRef="c20230101to20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,571</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_e771d5db06f44f01bf899dc30ece1a19" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">43,384</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_1fa211f11d2643acb353d07e2d5e6d7f" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">72,631</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Fixed assets, net:</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_11053a0288a34ac1bed03ea7820fc42c" contextRef="c20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">831</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_2de7998d105e4ed6973d76114c927329" contextRef="c20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">945</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">International</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_450d3562af7f43dab7e21893c62d145c" contextRef="c20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">987</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_cb0288d98b474ff4a6ea029d7512a3d1" contextRef="c20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,476</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_059103176e7c45d5a90c41b0b08ab295" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,818</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_eaf60dc04f2e4ac5a296cb1ce5cc4095" contextRef="c20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,421</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

    <ix:continuation id="Text_317d365165824e828b002b2be49dfcc15" continuedAt="Text_317d365165824e828b002b2be49dfcc16">
<div> <br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_317d365165824e828b002b2be49dfcc16">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Sales to international customers were <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_eef988d24c334d7a9b10f22dc3b155ec" contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">23</ix:nonFraction>%
      and <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_8a7e9d8745ae41e480cf975d79212aa7" contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">20</ix:nonFraction>% of total sales in 2024
      and 2023, respectively.&#160; Sales to Europe represented <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_2359de3dd3bb4f94b72e3c54ca08d67d" contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">55</ix:nonFraction>% and <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_cf22b1e39890428b88f8cd194a71ae23" contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">64</ix:nonFraction>%, sales to the Pacific Rim (which includes Australia and Asia) represented <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_884dc442bb8448a087f9e5d0ee90b7ba" contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">34</ix:nonFraction>% and <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_a7be34216961406ea18c5c7ba5b41aad" contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">29</ix:nonFraction>%, and sales to Canada
      represented <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_3996b33490734fe4896ba46fcf69a9fc" contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">10</ix:nonFraction>% and <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_5f67358592894d0db38418dd66e24eb6" contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">4</ix:nonFraction>% of
      total international sales in 2024 and 2023,
      respectively.&#160; International long-lived assets consist of net fixed assets located at our foreign subsidiary in the UK, as well as our contract manufacturer in Thailand.</div>
</ix:continuation>
    <div><br/>
    </div>

    <div class="BRPFPageFooter" style="width: 100%;"></div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <!--PROfilePageNumberReset%Num%24%F-%%-->
    <ix:nonNumeric name="us-gaap:LesseeOperatingLeasesTextBlock" id="Text_5a7dc2c2b1cb4061a483a480c2de1e99" contextRef="c20240101to20241231" escape="true" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd421">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">15. Leases</div>
</ix:nonNumeric>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd421" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd422">
<div><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd422" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd423">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;">Operating lease expense was $</span><ix:nonFraction name="us-gaap:OperatingLeaseExpense" id="Fact_26f2402856e4401fb3a0d23849e0b79a" contextRef="c20240101to20241231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.0</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:OperatingLeaseExpense" id="Fact_e3648ab59474476784d790b3a8f07640" contextRef="c20230101to20231231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.1</ix:nonFraction><span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"> million for the years ended December 31, </span>2024<span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"> and </span>2023<span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;">,
        respectively, and is reported as </span>&#8220;Cost of sales,&#8221; &#8220;Engineering, design and product development expense,&#8221; &#8220;Selling and marketing expense,&#8221; and &#8220;General and administrative expense&#8221; in the Consolidated Statements of Operations.&#160; <span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;">Operating costs include short-term lease costs.</span></div>
</ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd423" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd424">
<div><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd424" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd425"><ix:nonNumeric name="tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" id="Text_4eab533f0844421ebd1a6dd3b33f2c58" contextRef="c20240101to20241231" escape="true" continuedAt="Text_b8cfb55c9ffb4bfabeeae8ec312a91781">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd425" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd426"><ix:continuation id="Text_b8cfb55c9ffb4bfabeeae8ec312a91781" continuedAt="Text_b8cfb55c9ffb4bfabeeae8ec312a91782">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd426" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd427"><ix:continuation id="Text_b8cfb55c9ffb4bfabeeae8ec312a91782">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"> </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Operating cash outflows from leases</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeasePayments" id="Fact_e19a81f5d6d746ccbfe3ebd0347c74a1" contextRef="c20240101to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,022</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeasePayments" id="Fact_d463600d0099409583b9b11218363b1d" contextRef="c20230101to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,013</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <div style="text-align: left; font-family: 'Times New Roman'; font-size: 12pt;">
      <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd427" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd428">
<div><br/>
      </div>
</ix:continuation>
    </div>

    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd428" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd429"><ix:nonNumeric name="tact:LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" id="Text_5468d94eba274b49957e07039b061b03" contextRef="c20240101to20241231" escape="true" continuedAt="Text_8040bcb982e84d9fb4763d40acaa4f371">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following summarizes additional information related to our leases:</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd429" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd4210"><ix:continuation id="Text_8040bcb982e84d9fb4763d40acaa4f371" continuedAt="Text_8040bcb982e84d9fb4763d40acaa4f372">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd4210" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd4211"><ix:continuation id="Text_8040bcb982e84d9fb4763d40acaa4f372">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"> </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Weighted average remaining lease term (in years)</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Fact_0fbaaabbac7d41188cbe9359e45afaaa" contextRef="c20241231" format="ixt-sec:duryear">1.2</ix:nonNumeric></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonNumeric name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Fact_bc1c90158a484098b20d4b8e7d47178a" contextRef="c20231231" format="ixt-sec:duryear">1.7</ix:nonNumeric></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 76%;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Weighted average discount rate</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" id="Fact_8d9c66514b0f490bbcf638bb7475edc8" contextRef="c20241231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">7.7</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" id="Fact_7d60aafa33cf4c8a9de2743632fabd55" contextRef="c20231231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">4.4</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>
    <div style="text-align: left; font-family: 'Times New Roman'; font-size: 12pt;">
      <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd4211" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd4212">
<div><br/>
      </div>
</ix:continuation>
      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div class="BRPFPageNumberArea" style="text-align: center;"><span style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">F-25</span></div>

        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;"/></div>

        <div style="width: 100%;" class="BRPFPageHeader">
          <div><a href="#INDEX"><span style="font-size: 8pt; font-weight: normal; font-style: italic;">Index</span></a></div>

        </div>

      </div>

      <!--PROfilePageNumberReset%Num%25%%%--> </div>

    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd4212" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd4213"><ix:nonNumeric name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="Text_5506cde2ef1549d78d0c07d838263a31" contextRef="c20240101to20241231" escape="true" continuedAt="Text_57bdb7af329a48ec8b1b50205bbc7daf1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The maturity of the Company&#8217;s operating lease liabilities are as follows (in thousands):</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd4213" continuedAt="Text_7d54b95c91c24c3b93605b8d7992cd4214"><ix:continuation id="Text_57bdb7af329a48ec8b1b50205bbc7daf1" continuedAt="Text_57bdb7af329a48ec8b1b50205bbc7daf2">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_7d54b95c91c24c3b93605b8d7992cd4214"><ix:continuation id="Text_57bdb7af329a48ec8b1b50205bbc7daf2">
<table cellspacing="0" cellpadding="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"> </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31, 2024</div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2025</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" id="Fact_c377d875e9a84c70a0c00de7f39cc250" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,014</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 2px;">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2026</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" id="Fact_e1574a66dd664ca4979253d17b8d6194" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">237</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: rgb(204, 238, 255);">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total undiscounted lease payments</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" id="Fact_afccc858ff034b5f9eaffb23d8861ca9" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,251</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 2px;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Less imputed interest</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);">&#160;</td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" id="Fact_49320404b00d4eeca17a6b9c2966ec39" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">65</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: rgb(204, 238, 255);">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total lease liabilities</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);">&#160;</td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td valign="bottom" colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiability" id="Fact_3f691b1c92da40c788446ae862ce5dc0" contextRef="c20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,186</ix:nonFraction></div>
          </td>

    <td valign="bottom" colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;">&#160;</td>

  </tr>


</table>
</ix:continuation></ix:continuation>

    <div><br/>
    </div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:QuarterlyFinancialInformationTextBlock" id="Text_e58080c8e8e74a9f8fdb44ee77736a6a" contextRef="c20240101to20241231" escape="true" continuedAt="Text_8361c107017a4e3f88b6bf912c05db401">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">16. Quarterly results of operations (unaudited)</div>
</ix:nonNumeric>
    <ix:continuation id="Text_8361c107017a4e3f88b6bf912c05db401" continuedAt="Text_8361c107017a4e3f88b6bf912c05db402">
<div><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_8361c107017a4e3f88b6bf912c05db402" continuedAt="Text_8361c107017a4e3f88b6bf912c05db403"><ix:nonNumeric name="us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock" id="Text_955f2bb3e42647958280ecce3bf167e6" contextRef="c20240101to20241231" escape="true" continuedAt="Text_5aa91f445453426ba1d9052c1d8a58251">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Our quarterly results of operations for 2024
      and 2023 are as follows:</div>
</ix:nonNumeric></ix:continuation>
    <ix:continuation id="Text_8361c107017a4e3f88b6bf912c05db403" continuedAt="Text_8361c107017a4e3f88b6bf912c05db404"><ix:continuation id="Text_5aa91f445453426ba1d9052c1d8a58251" continuedAt="Text_5aa91f445453426ba1d9052c1d8a58252">
<div><br/>
    </div>
</ix:continuation></ix:continuation>
    <ix:continuation id="Text_8361c107017a4e3f88b6bf912c05db404"><ix:continuation id="Text_5aa91f445453426ba1d9052c1d8a58252">
<table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;" class="cfttable">


  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"/>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" colspan="14">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Quarter Ended</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands, except per share amounts)</div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">March 31</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">June 30</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">September 30</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" colspan="2">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31</div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom;">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024:</div>
          </td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom;" colspan="2">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_aca121163c8e46bb854fa2a50c60e454" contextRef="c20240101to20240331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,687</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_f7d8228eff494977b7675ee10bf1bf97" contextRef="c20240401to20240630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,599</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_20571d50d54b4240b00afdb4849513c2" contextRef="c20240701to20240930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,867</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_bdd0fa7780104c508c87559d36efa2dd" contextRef="c20241001to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,231</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross profit</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_c145c882e5ce4a5399be4b7b543d4725" contextRef="c20240101to20240331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,624</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_57d4d11bdea94fff872ec8c069cdc06d" contextRef="c20240401to20240630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,110</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_90a32589b1e4498c9a8cc4800eebee36" contextRef="c20240701to20240930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,227</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_7a573194dd4040dba1fb159b5249d9f3" contextRef="c20241001to20241231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,521</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net loss</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_7383a12d8101403e8b103957f9874e6a" contextRef="c20240101to20240331" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,036</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_3407de2db40f4ac18031932e5eff6804" contextRef="c20240401to20240630" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">319</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_9cc780925dac45b4bef805d22acbd15e" contextRef="c20240701to20240930" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">551</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_ef368020eff14f089bc0144332194f83" contextRef="c20241001to20241231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">7,957</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; white-space: nowrap;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net loss per common share:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_b53df643e5df4dbea83f5b9492a9f9bc" contextRef="c20240101to20240331" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.10</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_7f4bf6f16eda454080f1fd2b43c2cf24" contextRef="c20240401to20240630" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.03</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_82f1d59759cd4c4ebb0a4e6221ad5f8b" contextRef="c20240701to20240930" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.06</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_8000ded3f41b46f8b4ce75516aaa0647" contextRef="c20241001to20241231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.79</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_225a0575e00e48c48c590d27c951bac0" contextRef="c20240101to20240331" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.10</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_69b36f54b1224f6ab46621c777115233" contextRef="c20240401to20240630" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.03</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_86fd68a5d1e4445fa6307c0775a44b21" contextRef="c20240701to20240930" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.06</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_7665fca8130e46c4a4da5c1f41ec3cd4" contextRef="c20241001to20241231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.79</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%;">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023:</div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_59d20f9fe1334db1999f604da64bb15e" contextRef="c20230101to20230331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">22,270</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_c218e2da27744e99a9443a4156df1d31" contextRef="c20230401to20230630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,906</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_59e5ea5d0a314fb0ba0f283f5bca7ca1" contextRef="c20230701to20230930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,190</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_9fdc23747cf54336bddd9e6091af6762" contextRef="c20231001to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">13,265</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross profit</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_65a2e1905c6f41b59b9ba4a636fb8804" contextRef="c20230101to20230331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,255</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_4b30f08dc8ca4e9ea11a035447c12869" contextRef="c20230401to20230630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,858</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_2ce7f2b0b7874b0d86ab8d0840927e90" contextRef="c20230701to20230930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,916</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_b66dead2adf0425e8a50aa0233fa190c" contextRef="c20231001to20231231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,371</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net income (loss)</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_6e2b36a5813541608e3aa355b73b7c34" contextRef="c20230101to20230331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,139</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_0cc86c78b5954e1db5f0a5d43858c2a5" contextRef="c20230401to20230630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">765</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_271ef5bea72e44fcb59dda7934c56abc" contextRef="c20230701to20230930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">906</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_19900348a5f248e5874cdd387a48cbeb" contextRef="c20231001to20231231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">62</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; white-space: nowrap;">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net income (loss) per common share:</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_6129ffcdc3704ef58a45cdc1754ac3ff" contextRef="c20230101to20230331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.32</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_3b959407ce9c4c2fa0a022195bc94319" contextRef="c20230401to20230630" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_dfafc55a34fd40469fac78c5bad2e454" contextRef="c20230701to20230930" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.09</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_d560631f968e47a2ba9d3daaa2f14d32" contextRef="c20231001to20231231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td valign="bottom" style="vertical-align: bottom; width: 52%;">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_52062d278e0e4bce85837d834bafa46b" contextRef="c20230101to20230331" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.31</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_8dbdd87935b44eeeb7317f32e4705972" contextRef="c20230401to20230630" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_e45c69bb7f7a441b96a24aa80b799c62" contextRef="c20230701to20230930" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.09</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: right; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;" colspan="1">&#160;</td>

    <td valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_36e2b01c93564480a4cff81563423338" contextRef="c20231001to20231231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></div>
            </div>
          </td>

    <td valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" colspan="1">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>


</table>
</ix:continuation></ix:continuation>

    <div><br/>
    </div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: rgb(0, 0, 0);">

    <div>
      <ix:nonNumeric name="us-gaap:RelatedPartyTransactionsDisclosureTextBlock" id="Text_122bd8032f414168a8461c75a6f4dea2" contextRef="c20240101to20241231" escape="true" continuedAt="Text_bc69da9acd304adcbf1f3b8d5e57b3a51">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-weight: bold;">17. Related party transactions</div>
</ix:nonNumeric>
      <ix:continuation id="Text_bc69da9acd304adcbf1f3b8d5e57b3a51" continuedAt="Text_bc69da9acd304adcbf1f3b8d5e57b3a52">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>
</ix:continuation>
      <ix:continuation id="Text_bc69da9acd304adcbf1f3b8d5e57b3a52">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">One of the Company&#8217;s directors serves as President and Chief Executive Officer of The One Group Hospitality, Inc.&#160; The
        Company sold various food service technology products to The One Group Hospitality, Inc. on an arms&#8217; length basis totaling $<ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_eeb29bfc06f341878c668d3bf27c891f" contextRef="c20240101to20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">117</ix:nonFraction> thousand
        and $<ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_818a760ab6f3455c9625e4da9e9bf91d" contextRef="c20230101to20231231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">246</ix:nonFraction> thousand in 2024 and 2023, respectively.&#160; The Company&#8217;s accounts receivable from The One Group Hospitality, Inc. amounted to $<ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" id="Fact_401fe8bc49984694ac05f2ece93189d7" contextRef="c20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" id="Fact_e15be5745dfa43d389ef31b300b7d43f" contextRef="c20231231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">34</ix:nonFraction> thousand at December
        31, 2024 and 2023, respectively.</div>
</ix:continuation>

      <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"> <br/>
      </div>

    </div>


  </div>
<div style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; ">

    <ix:nonNumeric name="us-gaap:SubsequentEventsTextBlock" id="Text_7a0238212f9f45698df40ad2fc23f0c5" contextRef="c20240101to20241231" escape="true" continuedAt="Text_ceeda5c31d4542419350f1e82ffc499b1">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">18. Subsequent events</div>
</ix:nonNumeric>
    <ix:continuation id="Text_ceeda5c31d4542419350f1e82ffc499b1" continuedAt="Text_ceeda5c31d4542419350f1e82ffc499b2">
<div style="text-align: justify;"><br/>
    </div>
</ix:continuation>
    <ix:continuation id="Text_ceeda5c31d4542419350f1e82ffc499b2">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The Company has evaluated all events or transactions that occurred up to the date the consolidated financial statements were available to issue.&#160; Based upon this review,
      the Company did not identify any subsequent events that would have required adjustment or disclosure in the consolidated financial statements.</div>
</ix:continuation>
    <div><br/>
    </div>

    <div><br/>
    </div>

    <div style="text-align: center;"><span style="font-family: 'Times New Roman'; font-size: 8pt; color: rgb(0, 0, 0); font-weight: normal; font-style: normal;">F-26</span></div>

    <div>
      <hr style="height: 2px; color: #000000; background-color: #000000; text-align: center; border: none; margin-left: auto; margin-right: auto;"/></div>

    <div style="width: 100%;" class="BRPFPageFooter"></div>


  </div>
</div>
</body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.11
<SEQUENCE>2
<FILENAME>ef20039038_ex10-11.htm
<DESCRIPTION>SEVERANCE AGREEMENT BY AND BETWEEN TRANSACT AND TRACEY S. WINSLOW
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">

  <div>
    <div>
      <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
      <div>
        <div style="text-align: right; font-weight: bold;">Exhibit 10.11</div>
        <div><br>
        </div>
        <div style="text-align: center;"><u>SEVERANCE AGREEMENT</u></div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 18pt;">This Severance Agreement (the "Agreement") is entered into as of the 22<sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">nd</sup> day of December 2023, by and between <font style="font-weight: bold;">Tracey Winslow</font>, an individual with a residence address of 1251 Sleepy Hollow Rd., Venice, FL 34285 (the "Executive"), and <font style="font-weight: bold;">TransAct Technologies Incorporated</font>, a Delaware
          corporation with a mailing address of One Hamden Center, 2319 Whitney Avenue, Suite 3B, Hamden, Connecticut 06518 (the "Company").&#160; As used in this Agreement, the "Company" shall also include all subsidiaries of the Company, as the context
          requires.</div>
        <div><br>
        </div>
        <div style="text-align: justify;"><u>INTRODUCTION</u></div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">1.&#160; The Company is in the business of developing, manufacturing and marketing market-specific solutions including printers, terminals, software and other products for transaction-based and
          other industries (the "Business").</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">2.&#160; The Company desires that the Executive serve in the position of Chief Revenue Officer with the Company and that the Company be able to rely upon her advice when requested as to the best
          interests of the Company, and its shareholders.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">3.&#160; The Board of Directors of the Company believes the Executive can best serve the Company without the distractions of personal uncertainties and risks that might be created in the event a
          change in control of the Company is proposed or her employment by the Company is terminated.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">4.&#160; The Company and Executive are parties to a Severance Agreement dated June 29, 2005 (the &#8220;2005 Agreement) and a December 23, 2008 Amendment to the 2005 Agreement (the &#8220;2008 Amendment&#8221;).&#160; The
          2005 Agreement and the 2008 Amendment together shall be referred to as the &#8220;Prior Severance Agreement&#8221;.&#160; The Company and Executive desire to enter into this Severance Agreement that will replace and supersede the Prior Severance Agreement.</div>
        <div><br>
        </div>
        <div style="text-align: justify;"><u>AGREEMENT</u></div>
        <div><br>
        </div>
        <div style="text-align: justify;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;In consideration of the premises and mutual promises herein below set forth, the parties hereby agree as follows:</div>
        <div><br>
        </div>
        <div style="text-align: justify;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;1.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160; &#160; <u>Definitions</u>. The following terms shall have the meanings indicated for the purposes of this Agreement:</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 27pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160; &#160;&#160; (a)&#160; "Cause" shall mean: (i) the death or disability of the Executive (For purposes of this Agreement, "disability" shall mean the Executive's incapacity due to physical or mental
          illness which has caused the Executive to be absent from the full-time performance of her duties with the Company for a period of six (6) consecutive months.) (ii) any action or inaction by the Executive that constitutes larceny, fraud, gross
          negligence, a willful or negligent misrepresentation to the directors or officers of the Company, their successors or assigns, or a crime involving moral turpitude; or (iii) the refusal of the Executive to follow the reasonable and lawful
          instructions of the CEO or the Board of Directors of the Company with respect to the services to be rendered and the manner of rendering such services by Executive, provided such refusal is material and repetitive and is not justified or excused
          either by the terms of this Agreement or by actions taken by the Company in violation of this Agreement, and with respect to the first two refusals Executive has been given reasonable written notice and explanation thereof and reasonable
          opportunity to cure and no cure has been effected within a reasonable time after such notice.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(b)&#160;&#160; "Change in Control" will be deemed to have occurred if: (1) the Company effectuates a Takeover Transaction; or (2) any election of directors of the Company (whether by the directors then
          in office or by the stockholders at a meeting or by written consent) where a majority of the directors in office following such election are individuals who were not nominated by a vote of two-thirds of the members of the Board of Directors
          immediately preceding such election; or (3) the Company effectuates a complete liquidation of the Company or a sale or disposition of all or substantially all of its assets.&#160; A "Change in Control" shall not be deemed to include, however, a merger
          or sale of stock, assets or business of the Company if the Executive immediately after such event owns, or in connection with such event immediately acquires (other than in the Executive's capacity as an equity holder of the Company or as a
          beneficiary of its employee stock ownership plan or profit sharing plan), any stock of the buyer or any affiliate thereof.</div>
        <div style="text-align: justify; text-indent: 64.8pt;"> <br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(c)&#160; A "Takeover Transaction" shall mean (i) a merger or consolidation of the Company with, or an acquisition of the Company or all or substantially all of its assets by, any other corporation,
          other than a merger, consolidation or acquisition in which the individuals who were members of the Board of Directors of the Company immediately prior to such transaction continue to constitute a majority of the Board of Directors of the
          surviving corporation (or, in the case of an acquisition involving a holding company, constitute a majority of the Board of Directors of the holding company) for a period of not less than twelve (12) months following the closing of such
          transaction, or (ii) when any person or entity or group of persons or entities (other than any trustee or other fiduciary holding securities under an employee benefit plan of the Company) either related or acting in concert becomes the
          "beneficial owner" (as defined in Rule 13d-3 under the Securities Exchange Act of 1934, as amended) of securities of the Company representing more than fifty percent (50%) of the total number of votes that may be cast for the election of
          directors of the Company.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(d)&#160; "Terminating Event" shall mean: (i) termination by the Company of the employment of the Executive for any reason other than retirement or for Cause, occurring within twelve (12) months
          after a Change of Control; or (ii) resignation of the Executive from the employ of the Company, while the Executive is not receiving payments or benefits from the Company by reason of the Executive's disability, subsequent to any of the following
          events occurring within twelve (12) months after a Change of Control:&#160; (A) a significant reduction in the nature or scope of the Executive's responsibilities, authorities, powers, functions or duties from the responsibilities, authorities,
          powers, functions or duties exercised by the Executive immediately prior to the Change in Control; (B) a decrease in the salary payable by the Company to the Executive from the salary payable to the Executive immediately prior to the Change in
          Control except for across-the-board salary reductions similarly affecting all management personnel of the Company; or (C) the relocation of the Executive&#8217;s principal place of employment (without her consent) to a location more than 50 miles from
          its current location (unless such new location is closer to the Executive's then residence) provided, however, that a Terminating Event shall not be deemed to have occurred solely as a result of the Executive being an employee of any direct or
          indirect successor to the business or assets of the Company, rather than continuing as an employee of the Company, following a Change in Control; or (D) any other action or inaction that constitutes a material breach of the Agreement by the
          Company, including without limitation Section 11.&#160; It is further understood that a resignation shall qualify as a "terminating event" only if:&#160; (i) the Executive gives the Company notice, within ninety (90) days of its first existence or
          occurrence (without the consent of the Executive) of any or any combination of the events described in this Section 1(e)(ii); (ii) the Company fails to cure the eligibility condition(s) within thirty (30) days of receiving such notice; and (iii)
          the Executive separates from service not later than 30<font style="font-weight: bold;">&#160;</font>days following the end of such thirty-day period.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(e)&#160; "Separation from Service" for purposes of the Agreement shall mean a "separation from service" (as defined at Section 1.409A-1(h) of the Treasury Regulations) from the Company and from all
          other corporations and trades or businesses, if any, that would be treated as a single "service recipient" with the Company under Section 1.409A-1(h)(3) of the Treasury Regulations.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">2.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>Severance</u>.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(a)&#160; <u>Without Cause</u>. If the Company terminates the employment of the Executive without Cause, other than as a result of a Terminating Event, then commencing on the date of such
          termination and for a period of one (1) year thereafter, the Company shall provide Executive with a severance package which shall consist of the following payments:&#160; (i) the Executive's then current annual base salary payable in equal
          installments in connection with the Company&#8217;s regular payroll dates and procedures; (ii) the Executive's annual target bonus amount under the Company&#8217;s Executive Incentive Compensation Plan (&#8220;EIC&#8221;), if any, pro-rated for the portion of the fiscal
          year occurring prior to termination, payable in equal installments in connection with the Company&#8217;s regular payroll dates and procedures; and (iii) subject to any employee contribution applicable to the Executive on the date of termination,
          contribution to the cost of the Executive&#8217;s participation in the Company&#8217;s group medical and dental plans, provided that the Executive is entitled to continue such participation under applicable law and plan terms.</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify;">(b)&#160; <u>With a Terminating Event.</u> If the Company terminates the employment of the Executive as a result of a Terminating Event, then commencing on the date of such termination and for a period equal to one (1)
          year thereafter, the Company shall provide Executive with a severance package which shall consist of the following payments:&#160; (i) the Executive's then current annual base salary payable in equal installments in connection with the Company&#8217;s
          regular payroll dates and procedures; (ii) the Executive's annual target bonus amount under the Company's Executive Incentive Compensation Plan, if any, payable in equal installments in connection with the Company&#8217;s regular payroll dates and
          procedures; and (iii) subject to any employee contribution applicable to the Executive on the date of termination, contribution to the cost of the Executive&#8217;s participation in the Company&#8217;s group medical and dental plans, provided that the
          Executive is entitled to continue such participation under applicable law and plan terms.&#160; In addition, if the Company terminates the employment of the Executive as a result of a Terminating Event, then the Company shall cause the immediate
          vesting of all options granted by the Company to the Executive under the Company's stock plans. At any time when the Company is obligated to make installment payments under Section 2(b), the Company shall, ten (10) days after receipt of a written
          request from the Executive, pay the Executive an amount equal to the balance of the amounts payable under Section 2(b)(i)-(ii), provided that the obligation of the Company to continue to contribute to medical and dental benefits pursuant to
          Section 2(b)(iii) or to make installment payments under 2(b)(i)-(ii) shall cease upon the payment of such amount; <font style="font-style: italic;">provided</font>, that this sentence shall not apply to any portion of the amounts payable under
          Section 2(b)(i)-(ii) that constitutes or includes nonqualified deferred compensation subject to Section 409A of the Internal Revenue Code of 1986, as amended (the "Code").</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(c)&#160; <u>General Release</u>. As a condition precedent to receiving any severance payment, the Executive shall execute a general release of any and all claims which Executive or her heirs,
          executors, agents or assigns might have against the Company, its subsidiaries, affiliates, successors, assigns and their past, present and future employees, officers, directors, agents and attorneys. Any such release must be executed in a form
          prescribed by or acceptable to the Company and delivered to the Company not later than sixty (60) days following the Executive's separation from service. If the Executive's properly executed release is timely delivered to the Company and the
          Executive does not revoke the release within seven (7) days thereafter or within such shorter period as the Company may prescribe, the severance benefits payable hereunder shall commence upon the expiration of such seven-day or shorter period; <font style="font-style: italic;">provided</font>, that the first such payment shall include any amounts that would have been paid earlier but for the provisions of this subsection (c).</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(d)&#160; <u>Withholding</u>. All payments made by the Company under this Agreement shall be net of any tax or other amounts required to be withheld by the Employer under applicable law.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 36pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (e)&#160; <u>Effect of Breach</u>. In the event that the Executive breaches Section 3 of this Agreement, he shall forfeit any right to severance payments or benefits contribution hereunder
          and shall be required to return any severance payments or benefits contributions provided prior to such breach within ten (10) days after a written demand by the Company.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">3.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>Non-Competition</u>. During Executive's employment with the Company and (a) in the case of termination other than as a result of a Terminating Event, for one (1) year following
          the termination of Executive's employment with the Company or (b) in the case of termination as a result of a Terminating Event, for one (1) year following the termination of Executive's employment with the Company, Executive will not directly or
          indirectly whether as a partner, consultant, agent, employee, co-venturer, greater than two percent owner or otherwise or through any other person (as hereafter defined): (a) be engaged in any business or activity which is competitive with the
          business of the Company in any part of the world in which the Company is at the time of the Executive's termination engaged in selling their products directly or indirectly; or (b) attempt to recruit any employee of the Company, assist in their
          hiring by any other person, or encourage any employee to terminate her or her employment with the Company; or (c) encourage any customer of the Company to conduct with any other Person any business or activity which such customer conducts or
          could conduct with the Company.&#160; For purpose of this Section 3, the term "Company" shall include any person controlling, under common control with or controlled by, the Company.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">For purposes of this Agreement, the term "Person" shall mean an individual or corporation, association or partnership in estate or trust or any other entity or organization.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">The Executive recognizes and agrees that because a violation by her of this Section 3 will cause irreparable harm to the Company that would be difficult to quantify and for which money damages
          would be inadequate, the Company shall have the right to injunctive relief to prevent or restrain any such violation, without the necessity of posting a bond.</div>
        <div style="text-align: justify; text-indent: 28.8pt;"> <br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">Executive expressly agrees that the character, duration and scope of this covenant not to compete are reasonable in light of the circumstances as they exist at the date upon which this
          Agreement has been executed. However, should a determination nonetheless be made by a court of competent jurisdiction at a later date that the character, duration or geographical scope of this covenant not to compete is unreasonable in light of
          the circumstances as they then exist, then it is the intention of both Executive and the Company that this covenant not to compete shall be construed by the court in such a manner as to impose only those restrictions on the conduct of Executive
          which are reasonable in light of the circumstances as they then exist and necessary to provide the Company the intended benefit of this covenant to compete.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">4.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Confidentiality Covenants</u>. Executive understands that the Company may impart to her confidential business information including, without limitation, designs, financial
          information, personnel information, strategic plans, product development information and the like (collectively "Confidential Information"). Executive hereby acknowledges Company's exclusive ownership of such Confidential Information.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">Executive agrees as follows: (1) only to use the Confidential Information to provide services to the Company; (2) only to communicate the Confidential Information to fellow employees, agents
          and representatives of the Company on a need-to-know basis; and (3) not to otherwise disclose or use any Confidential Information. Upon demand by the Company or upon termination of Executive's employment, Executive will deliver to the Company all
          property of the Company including, but not limited to, all manuals, documents, photographs, recordings, and any other instrument or device by which, through which, or on which Confidential Information has been recorded and/or preserved, which are
          in Executive's possession, custody or control.&#160; Executive acknowledges that for purposes of this Section 4 the term "Company" means any person or entity now or hereafter during the term of this Agreement which controls, is under common control
          with, or is controlled by, the Company.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">The Executive recognizes and agrees that because a violation by her of this Section 4 will cause irreparable harm to the Company that would be difficult to quantify and for which money damages
          would be inadequate, the Company shall have the right to injunctive relief to prevent or restrain any such violation, without the necessity of posting a bond.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">5.&#160;&#160;&#160;&#160; &#160; &#160; <u>Governing Law/Jurisdiction</u>. This Agreement shall be governed by and interpreted and governed in accordance with the laws of the State of Connecticut. The parties agree that
          this Agreement was made and entered into in Connecticut and each party hereby consents to the jurisdiction of a competent court in Connecticut to hear any dispute arising out of this Agreement.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">6.&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Entire Agreement</u>. This Agreement constitutes the entire agreement between the parties hereto with respect to the subject matter hereof and thereof and supercedes any and all
          previous agreements, written and oral, regarding the subject matter hereof between the parties hereto. This Agreement shall not be changed, altered, modified or amended, except by a written agreement signed by both parties hereto.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">7.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Notices</u>. All notices, requests, demands and other communications required or permitted to be given or made under this Agreement shall be in writing and shall be deemed to
          have been given if delivered by hand, sent by generally recognized overnight courier service, telex or telecopy, or certified mail, return receipt requested.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 100.8pt;">(a) To the Company at:</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 100.8pt;">One Hamden Center</div>
        <div style="text-align: justify; text-indent: 100.8pt;">2319 Whitney Avenue, Suite 3B</div>
        <div style="text-align: justify; text-indent: 100.8pt;">Hamden, CT 06518</div>
        <div style="text-align: justify; text-indent: 100.8pt;">Attn:&#160; CEO/President</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(b) To the Executive at:</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 100.8pt;">1251 Sleepy Hollow Rd</div>
        <div style="text-align: justify; text-indent: 100.8pt;">Venice, FL 34285</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">Any such notice or other communication will be considered to have been given (i) on the date of delivery in person, (ii) on the third day after mailing by certified mail, provided that receipt
          of delivery is confirmed in writing, (iii) on the first business day following delivery to a commercial overnight courier or (iv) on the date of facsimile transmission (telecopy) provided that the giver of the notice obtains telephone
          confirmation of receipt.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">Either party may, by notice given to the other party in accordance with this section, designate another address or person for receipt of notices hereunder.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">8.&#160;&#160;&#160;&#160; &#160;&#160; &#160; <u>Severability</u>. If any term or provision of this Agreement, or the application thereof to any person or under any circumstance, shall to any extent be invalid or
          unenforceable, the remainder of this Agreement, or the application of such terms to the persons or under circumstances other than those as to which it is invalid or unenforceable, shall be considered severable and shall not be affected thereby,
          and each term of this Agreement shall be valid and enforceable to the fullest extent permitted by law.&#160; The invalid or unenforceable provisions shall, to the extent permitted by law, be deemed amended and given such interpretation as to achieve
          the economic intent of this Agreement.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">9.&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Waiver</u>. The failure of any party to insist in any one instance or more upon strict performance of any of the terms and conditions hereof, or to exercise any right or privilege
          herein conferred, shall not be construed as a waiver of such terms, conditions, rights or privileges, but same shall continue to remain in full force and effect. Any waiver by any party of any violation of, breach of or default under any
          provision of this Agreement by the other party shall not be construed as, or constitute, a continuing waiver of such provision, or waiver of any other violation of, breach of or default under any other provision of this Agreement.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 27pt;">10.&#160;&#160;&#160;&#160; &#160;&#160; <u>Successors and Assignment</u>. Neither the Company nor the Executive may make any assignment of this Agreement or any interest herein, by operation of law or otherwise, without the
          prior written consent of the other; provided, however, that the Company may assign its rights and obligations under this Agreement without the consent of the Executive in the event that the Company shall hereafter affect a reorganization,
          consolidate with, or merge into, any other Person or transfer all or substantially all of its properties or assets to any other Person.&#160; This Agreement shall inure to the benefit of and be binding upon the Company and the Executive, their
          respective successors, executors, administrators, heirs and permitted assigns.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 27pt;">11.&#160;&#160;&#160;&#160;&#160;&#160; <u>Executive Incentive Compensation Plan</u>. During the twelve (12) month period subsequent to any Change in Control, neither the Company, nor, if applicable, any successor to the
          Company, will eliminate the Executive's participation in the Company's Executive Incentive Compensation Plan or reduce the Executive's target bonus amount under that plan.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 27pt;">12.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Section 409A</u>.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(a)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>In General</u>. To the extent any portion of the payments to be made under the Agreement constitute deferred compensation subject to Section 409A of the Code, such payments shall
          be made in accordance with the payment schedule provided in Section 2 of the Agreement, but not earlier than the 67th day following the date of the Involuntary Termination.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(b)&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Specified Employee</u>. Notwithstanding any other provision of the Agreement, if, at the time of separation from service, the Executive is a specified employee as hereinafter
          defined, any and all amounts payable in connection with such separation from service that constitute deferred compensation subject to Section 409A of the Code, as determined by the Company in its sole discretion, and that would (but for this
          sentence) be payable within six (6) months following such separation from service, shall instead be paid on the date that follows the date of such separation from service by six (6) months and one (1) day, without interest.&#160; For purposes of the
          preceding sentence, the term "specified employee" means an individual who is determined by the Company to be a specified employee as defined in subsection (a)(2)(B)(i) of Section 409A of the Code. The Company may, but need not, elect in writing,
          subject to the applicable limitations under Section 409A of the Code, any of the special elective rules prescribed in Section 1.409A-1(i) of the Treasury Regulations for purposes of determining "specified employee" status. Any such written
          election shall be deemed part of the Agreement.</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify;">IN WITNESS WHEREOF, the parties have executed this Agreement as of the date first written above.</div>
        <div><br>
        </div>
        <div>
          <table cellspacing="0" cellpadding="0" border="0" id="z5d6ceb84eb924f6d917356e8e756f899" style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000; width: 100%;">

              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td colspan="2" rowspan="1">TRANSACT TECHNOLOGIES INCORPORATED</td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 62%;">
                  <div>&#160;</div>
                </td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">By: <br>
                </td>
                <td style="width: 62%;"><u>/s/ Steven A. DeMartino</u></td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">Name:</td>
                <td style="width: 62%;">Steven A. DeMartino</td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">Title:</td>
                <td style="width: 62%;">President, CFO, Treasurer and Secretary</td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 62%;">
                  <div>&#160;</div>
                </td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">EXECUTIVE:</td>
                <td style="width: 62%;">
                  <div>&#160;</div>
                </td>
              </tr>
              <tr>
                <td rowspan="1" style="width: 33.33%;">&#160;</td>
                <td rowspan="1" style="width: 5%;">&#160;</td>
                <td rowspan="1" style="width: 62%;">&#160;</td>
              </tr>
              <tr>
                <td rowspan="1" style="width: 33.33%;">&#160;</td>
                <td rowspan="1" style="width: 5%;">By:</td>
                <td rowspan="1" style="width: 62%;"><u>/s/ Tracey Winslow</u></td>
              </tr>
              <tr>
                <td rowspan="1" style="width: 33.33%;">&#160;</td>
                <td rowspan="1" style="width: 5%;">Name: <br>
                </td>
                <td rowspan="1" style="width: 62%;">Tracey Winslow</td>
              </tr>
              <tr>
                <td rowspan="1" style="width: 33.33%;">&#160;</td>
                <td rowspan="1" style="width: 5%;">Title:</td>
                <td rowspan="1" style="width: 62%;">Chief Revenue Officer</td>
              </tr>

          </table>
        </div>
        <div style="text-indent: 180pt;"><br>
        </div>
        <div><br>
        </div>
        <div>
          <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
      </div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.12
<SEQUENCE>3
<FILENAME>ef20039038_ex10-12.htm
<DESCRIPTION>SEVERANCE AGREEMENT BY AND BETWEEN TRANSACT AND WILLIAM J. DEFRANCES
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">

  <div>
    <div>
      <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
      <div>
        <div style="text-align: right; font-weight: bold;">Exhibit 10.12</div>
        <div><br>
        </div>
        <div style="text-align: center;"><u>SEVERANCE AGREEMENT</u></div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 27pt;">This Severance Agreement (the "Agreement") is entered into as of the 3<sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">rd</sup>&#160; &#160; &#160;&#160; day of August 2022, by and between
          <font style="font-weight: bold;">William J. DeFrances</font>, an individual with a residence address of 80 Seraphin Court, Hamden, CT 06518 (the "Executive"), and <font style="font-weight: bold;">TransAct Technologies Incorporated</font>, a
          Delaware corporation with a mailing address of One Hamden Center, 2319 Whitney Avenue, 3B, Hamden, Connecticut 06518 (the "Company").&#160; As used in this Agreement, the "Company" shall also include all subsidiaries of the Company, as the context
          requires.</div>
        <div><br>
        </div>
        <div style="text-align: justify;"><u>INTRODUCTION</u></div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">1.&#160; The Company is in the business of developing, manufacturing and marketing market-specific solutions including printers, terminals, software and other products for transaction-based and
          other industries (the "Business").</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">2.&#160; The Company desires that the Executive serve in his position with the Company and that the Company be able to rely upon his advice when requested as to the best interests of the Company,
          and its shareholders.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">3.&#160; The Board of Directors of the Company believes the Executive can best serve the Company without the distractions of personal uncertainties and risks that might be created in the event a
          change in control of the Company is proposed or his employment by the Company is terminated.</div>
        <div><br>
        </div>
        <div style="text-align: justify;"><u>AGREEMENT</u></div>
        <div><br>
        </div>
        <div style="text-align: justify;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;In consideration of the premises and mutual promises herein below set forth, the parties hereby agree as follows:</div>
        <div><br>
        </div>
        <div style="text-align: justify;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;1.&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160; &#160; <u>Definitions</u>. The following terms shall have the meanings indicated for the purposes of this Agreement:</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(a)&#160; "Cause" shall mean: (i) the death or disability of the Executive (For purposes of this Agreement, "disability" shall mean the Executive's incapacity due to physical or mental illness which
          has caused the Executive to be absent from the full-time performance of his duties with the Company for a period of six (6) consecutive months.) (ii) any action or inaction by the Executive that constitutes larceny, fraud, gross negligence, a
          willful or negligent misrepresentation to the directors or officers of the Company, their successors or assigns, or a crime involving moral turpitude; or (iii) the refusal of the Executive to follow the reasonable and lawful instructions of the
          CEO or the Board of Directors of the Company with respect to the services to be rendered and the manner of rendering such services by Executive, provided such refusal is material and repetitive and is not justified or excused either by the terms
          of this Agreement or by actions taken by the Company in violation of this Agreement, and with respect to the first two refusals Executive has been given reasonable written notice and explanation thereof and reasonable opportunity to cure and no
          cure has been effected within a reasonable time after such notice.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(b)&#160;&#160; "Change in Control" will be deemed to have occurred if: (1) the Company effectuates a Takeover Transaction; or (2) any election of directors of the Company (whether by the directors then
          in office or by the stockholders at a meeting or by written consent) where a majority of the directors in office following such election are individuals who were not nominated by a vote of two-thirds of the members of the Board of Directors
          immediately preceding such election; or (3) the Company effectuates a complete liquidation of the Company or a sale or disposition of all or substantially all of its assets.&#160; A "Change in Control" shall not be deemed to include, however, a merger
          or sale of stock, assets or business of the Company if the Executive immediately after such event owns, or in connection with such event immediately acquires (other than in the Executive's capacity as an equity holder of the Company or as a
          beneficiary of its employee stock ownership plan or profit sharing plan), any stock of the buyer or any affiliate thereof.</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(c)&#160; A "Takeover Transaction" shall mean (i) a merger or consolidation of the Company with, or an acquisition of the Company or all or substantially all of its assets by, any other corporation,
          other than a merger, consolidation or acquisition in which the individuals who were members of the Board of Directors of the Company immediately prior to such transaction continue to constitute a majority of the Board of Directors of the
          surviving corporation (or, in the case of an acquisition involving a holding company, constitute a majority of the Board of Directors of the holding company) for a period of not less than twelve (12) months following the closing of such
          transaction, or (ii) when any person or entity or group of persons or entities (other than any trustee or other fiduciary holding securities under an employee benefit plan of the Company) either related or acting in concert becomes the
          "beneficial owner" (as defined in Rule 13d-3 under the Securities Exchange Act of 1934, as amended) of securities of the Company representing more than fifty percent (50%) of the total number of votes that may be cast for the election of
          directors of the Company.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(d)&#160; "Terminating Event" shall mean: (i) termination by the Company of the employment of the Executive for any reason other than retirement or for Cause, occurring within twelve (12) months
          after a Change of Control; or (ii) resignation of the Executive from the employ of the Company, while the Executive is not receiving payments or benefits from the Company by reason of the Executive's disability, subsequent to any of the following
          events occurring within twelve (12) months after a Change of Control:&#160; (A) a significant reduction in the nature or scope of the Executive's responsibilities, authorities, powers, functions or duties from the responsibilities, authorities,
          powers, functions or duties exercised by the Executive immediately prior to the Change in Control; (B) a decrease in the salary payable by the Company to the Executive from the salary payable to the Executive immediately prior to the Change in
          Control except for across-the-board salary reductions similarly affecting all management personnel of the Company; or (C) the relocation of the Executive&#8217;s principal place of employment (without his consent) to a location more than 50 miles from
          its current location (unless such new location is closer to the Executive's then residence) provided, however, that a Terminating Event shall not be deemed to have occurred solely as a result of the Executive being an employee of any direct or
          indirect successor to the business or assets of the Company, rather than continuing as an employee of the Company, following a Change in Control; or (D) any other action or inaction that constitutes a material breach of the Agreement by the
          Company, including without limitation Section 11.&#160; It is further understood that a resignation shall qualify as a "terminating event" only if:&#160; (i) the Executive gives the Company notice, within ninety (90) days of its first existence or
          occurrence (without the consent of the Executive) of any or any combination of the events described in this Section 1(e)(ii); (ii) the Company fails to cure the eligibility condition(s) within thirty (30) days of receiving such notice; and (iii)
          the Executive separates from service not later than 30<font style="font-weight: bold;">&#160;</font>days following the end of such thirty-day period.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(e)&#160; "Separation from Service" for purposes of the Agreement shall mean a "separation from service" (as defined at Section 1.409A-1(h) of the Treasury Regulations) from the Company and from all
          other corporations and trades or businesses, if any, that would be treated as a single "service recipient" with the Company under Section 1.409A-1(h)(3) of the Treasury Regulations.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">2.&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160; <u>Severance</u>.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(a)&#160; <u>Without Cause</u>. If the Company terminates the employment of the Executive without Cause, other than as a result of a Terminating Event, then commencing on the date of such
          termination and for a period of six (6) months thereafter, the Company shall provide Executive with a severance package which shall consist of the following:&#160; (i) payment on the first business day of each month of an amount equal to one-twelfth
          of the Executive's then current annual base salary; (ii) payment on the first business day of each month of an amount equal to one-sixth of the Executive's annual target bonus amount under the Company&#8217;s Executive Incentive Compensation Plan
          (&#8220;EIC&#8221;), pro-rated for the portion of the fiscal year occurring prior to termination; and (iii) subject to any employee contribution applicable to the Executive on the date of termination, contribution to the cost of the Executive&#8217;s participation
          in the Company&#8217;s group medical and dental plans, provided that the Executive is entitled to continue such participation under applicable law and plan terms.</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(b)&#160; <u>With a Terminating Event.</u> If the Company terminates the employment of the Executive as a result of a Terminating Event, then commencing on the date of such termination and for a
          period equal to one (1) year thereafter, the Company shall provide Executive with a severance package which shall consist of the following:&#160; (i) payment on the first business day of each month an amount equal to one-twelfth of the Executive's
          then current annual base salary; (ii) payment on the first business day of each month of an amount equal to one-twelfth of the Executive's annual target bonus amount under the Company's Executive Incentive Compensation Plan; and (iii) subject to
          any employee contribution applicable to the Executive on the date of termination, contribution to the cost of the Executive&#8217;s participation in the Company&#8217;s group medical and dental plans, provided that the Executive is entitled to continue such
          participation under applicable law and plan terms.&#160; In addition, if the Company terminates the employment of the Executive as a result of a Terminating Event, then the Company shall cause the immediate vesting of all options granted by the
          Company to the Executive under the Company's stock plans. At any time when the Company is obligated to make monthly payments under Section 2(b), the Company shall, ten (10) days after receipt of a written request from the Executive, pay the
          Executive an amount equal to the balance of the amounts payable under Section 2(b)(i)-(ii), provided that the obligation of the Company to continue to contribute to medical and dental benefits pursuant to Section 2(b)(iii) or to make monthly
          payments under 2(b)(i)-(ii) shall cease upon the payment of such amount; <font style="font-style: italic;">provided</font>, that this sentence shall not apply to any portion of the amounts payable under Section 2(b)(i)-(ii) that constitutes or
          includes nonqualified deferred compensation subject to Section 409A of the Internal Revenue Code of 1986, as amended (the "Code").</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(c)&#160; <u>General Release</u>. As a condition precedent to receiving any severance payment, the Executive shall execute a general release of any and all claims which Executive or his heirs,
          executors, agents or assigns might have against the Company, its subsidiaries, affiliates, successors, assigns and their past, present and future employees, officers, directors, agents and attorneys. Any such release must be executed in a form
          prescribed by or acceptable to the Company and delivered to the Company not later than sixty (60) days following the Executive's separation from service. If the Executive's properly executed release is timely delivered to the Company and the
          Executive does not revoke the release within seven (7) days thereafter or within such shorter period as the Company may prescribe, the severance benefits payable hereunder shall commence upon the expiration of such seven-day or shorter period; <font style="font-style: italic;">provided</font>, that the first such payment shall include any amounts that would have been paid earlier but for the provisions of this subsection (c).</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(d)&#160; <u>Withholding</u>. All payments made by the Company under this Agreement shall be net of any tax or other amounts required to be withheld by the Employer under applicable law.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(e)&#160; <u>Effect of Breach</u>. In the event that the Executive breaches Section 3 of this Agreement, he shall forfeit any right to severance payments or benefits contribution hereunder and shall
          be required to return any severance payments or benefits contributions provided prior to such breach within ten (10) days after a written demand by the Company.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">3.&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Non-Competition</u>. During Executive's employment with the Company and (a) in the case of termination other than as a result of a Terminating Event, for six (6) months following
          the termination of Executive's employment with the Company or (b) in the case of termination as a result of a Terminating Event, for one (1) year following the termination of Executive's employment with the Company, Executive will not directly or
          indirectly whether as a partner, consultant, agent, employee, co-venturer, greater than two percent owner or otherwise or through any other person (as hereafter defined): (a) be engaged in any business or activity which is competitive with the
          business of the Company in any part of the world in which the Company is at the time of the Executive's termination engaged in selling their products directly or indirectly; or (b) attempt to recruit any employee of the Company, assist in their
          hiring by any other person, or encourage any employee to terminate his or her employment with the Company; or (c) encourage any customer of the Company to conduct with any other Person any business or activity which such customer conducts or
          could conduct with the Company.&#160; For purpose of this Section 3, the term "Company" shall include any person controlling, under common control with or controlled by, the Company.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">For purposes of this Agreement, the term "Person" shall mean an individual or corporation, association or partnership in estate or trust or any other entity or organization.</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">The Executive recognizes and agrees that because a violation by him of this Section 3 will cause irreparable harm to the Company that would be difficult to quantify and for which money damages
          would be inadequate, the Company shall have the right to injunctive relief to prevent or restrain any such violation, without the necessity of posting a bond.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">Executive expressly agrees that the character, duration and scope of this covenant not to compete are reasonable in light of the circumstances as they exist at the date upon which this
          Agreement has been executed. However, should a determination nonetheless be made by a court of competent jurisdiction at a later date that the character, duration or geographical scope of this covenant not to compete is unreasonable in light of
          the circumstances as they then exist, then it is the intention of both Executive and the Company that this covenant not to compete shall be construed by the court in such a manner as to impose only those restrictions on the conduct of Executive
          which are reasonable in light of the circumstances as they then exist and necessary to provide the Company the intended benefit of this covenant to compete.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">4.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Confidentiality Covenants</u>. Executive understands that the Company may impart to his confidential business information including, without limitation, designs, financial
          information, personnel information, strategic plans, product development information and the like (collectively "Confidential Information"). Executive hereby acknowledges Company's exclusive ownership of such Confidential Information.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">Executive agrees as follows: (1) only to use the Confidential Information to provide services to the Company; (2) only to communicate the Confidential Information to fellow employees, agents
          and representatives of the Company on a need-to-know basis; and (3) not to otherwise disclose or use any Confidential Information. Upon demand by the Company or upon termination of Executive's employment, Executive will deliver to the Company all
          property of the Company including, but not limited to, all manuals, documents, photographs, recordings, and any other instrument or device by which, through which, or on which Confidential Information has been recorded and/or preserved, which are
          in Executive's possession, custody or control.&#160; Executive acknowledges that for purposes of this Section 4 the term "Company" means any person or entity now or hereafter during the term of this Agreement which controls, is under common control
          with, or is controlled by, the Company.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">The Executive recognizes and agrees that because a violation by him of this Section 4 will cause irreparable harm to the Company that would be difficult to quantify and for which money damages
          would be inadequate, the Company shall have the right to injunctive relief to prevent or restrain any such violation, without the necessity of posting a bond.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">5.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Governing Law/Jurisdiction</u>. This Agreement shall be governed by and interpreted and governed in accordance with the laws of the State of Connecticut. The parties agree that
          this Agreement was made and entered into in Connecticut and each party hereby consents to the jurisdiction of a competent court in Connecticut to hear any dispute arising out of this Agreement.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">6.&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Entire Agreement</u>. This Agreement constitutes the entire agreement between the parties hereto with respect to the subject matter hereof and thereof and supercedes any and all
          previous agreements, written and oral, regarding the subject matter hereof between the parties hereto. This Agreement shall not be changed, altered, modified or amended, except by a written agreement signed by both parties hereto.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">7.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Notices</u>. All notices, requests, demands and other communications required or permitted to be given or made under this Agreement shall be in writing and shall be deemed to
          have been given if delivered by hand, sent by generally recognized overnight courier service, telex or telecopy, or certified mail, return receipt requested.</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(a) To the Company at:</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 100.8pt;">One Hamden Center</div>
        <div style="text-align: justify; text-indent: 100.8pt;">2319 Whitney Avenue, Ste. 3B</div>
        <div style="text-align: justify; text-indent: 100.8pt;">Hamden, CT 06518</div>
        <div style="text-align: justify; text-indent: 100.8pt;">Attn:&#160; CEO/President</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 64.8pt;">(b) To the Executive at:</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 100.8pt;">80 Seraphin Court</div>
        <div style="text-align: justify; text-indent: 100.8pt;">Hamden, CT 06518</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">Any such notice or other communication will be considered to have been given (i) on the date of delivery in person, (ii) on the third day after mailing by certified mail, provided that receipt
          of delivery is confirmed in writing, (iii) on the first business day following delivery to a commercial overnight courier or (iv) on the date of facsimile transmission (telecopy) provided that the giver of the notice obtains telephone
          confirmation of receipt.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">Either party may, by notice given to the other party in accordance with this section, designate another address or person for receipt of notices hereunder.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">8.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Severability</u>. If any term or provision of this Agreement, or the application thereof to any person or under any circumstance, shall to any extent be invalid or unenforceable,
          the remainder of this Agreement, or the application of such terms to the persons or under circumstances other than those as to which it is invalid or unenforceable, shall be considered severable and shall not be affected thereby, and each term of
          this Agreement shall be valid and enforceable to the fullest extent permitted by law.&#160; The invalid or unenforceable provisions shall, to the extent permitted by law, be deemed amended and given such interpretation as to achieve the economic
          intent of this Agreement.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 28.8pt;">9.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Waiver</u>. The failure of any party to insist in any one instance or more upon strict performance of any of the terms and conditions hereof, or to exercise any right or
          privilege herein conferred, shall not be construed as a waiver of such terms, conditions, rights or privileges, but same shall continue to remain in full force and effect. Any waiver by any party of any violation of, breach of or default under
          any provision of this Agreement by the other party shall not be construed as, or constitute, a continuing waiver of such provision, or waiver of any other violation of, breach of or default under any other provision of this Agreement.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 27pt;">10.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Successors and Assignment</u>. Neither the Company nor the Executive may make any assignment of this Agreement or any interest herein, by operation of law or otherwise, without
          the prior written consent of the other; provided, however, that the Company may assign its rights and obligations under this Agreement without the consent of the Executive in the event that the Company shall hereafter affect a reorganization,
          consolidate with, or merge into, any other Person or transfer all or substantially all of its properties or assets to any other Person.&#160; This Agreement shall inure to the benefit of and be binding upon the Company and the Executive, their
          respective successors, executors, administrators, heirs and permitted assigns.</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify; text-indent: 27pt;">11.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Executive Incentive Compensation Plan</u>. During the twelve (12) month period subsequent to any Change in Control, neither the Company, nor, if applicable, any successor to the
          Company, will eliminate the Executive's participation in the Company's Executive Incentive Compensation Plan or reduce the Executive's target bonus amount under that plan.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 27pt;">12.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Section 409A</u>.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(a)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>In General</u>. To the extent any portion of the payments to be made under the Agreement constitute deferred compensation subject to Section 409A of the Code, such payments shall
          be made in accordance with the payment schedule provided in Section 2 of the Agreement, but not earlier than the 67th day following the date of the Involuntary Termination.</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 63pt;">(b)&#160;&#160;&#160;&#160;&#160;&#160;&#160; <u>Specified Employee</u>. Notwithstanding any other provision of the Agreement, if, at the time of separation from service, the Executive is a specified employee as hereinafter
          defined, any and all amounts payable in connection with such separation from service that constitute deferred compensation subject to Section 409A of the Code, as determined by the Company in its sole discretion, and that would (but for this
          sentence) be payable within six (6) months following such separation from service, shall instead be paid on the date that follows the date of such separation from service by six (6) months and one (1) day, without interest.&#160; For purposes of the
          preceding sentence, the term "specified employee" means an individual who is determined by the Company to be a specified employee as defined in subsection (a)(2)(B)(i) of Section 409A of the Code. The Company may, but need not, elect in writing,
          subject to the applicable limitations under Section 409A of the Code, any of the special elective rules prescribed in Section 1.409A-1(i) of the Treasury Regulations for purposes of determining "specified employee" status. Any such written
          election shall be deemed part of the Agreement.</div>
        <div><br>
        </div>
        <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
          <div style="page-break-after: always;" class="BRPFPageBreak">
            <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
        </div>
        <div style="text-align: justify;">IN WITNESS WHEREOF, the parties have executed this Agreement as of the date first written above.</div>
        <div><br>
        </div>
        <div>
          <table cellspacing="0" cellpadding="0" border="0" style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000; width: 100%;" id="z0ac733026189442b930f60699049ae9b">

              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td colspan="2" rowspan="1">TRANSACT TECHNOLOGIES INCORPORATED</td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 62%;">
                  <div>&#160;</div>
                </td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">By: <br>
                </td>
                <td style="width: 62%;"><u>/s/ Steven A. DeMartino</u></td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">Name:</td>
                <td style="width: 62%;">Steven A. DeMartino</td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">Title:</td>
                <td style="width: 62%;">President, CFO, Treasurer and Secretary</td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 62%;">
                  <div>&#160;</div>
                </td>
              </tr>
              <tr>
                <td style="width: 33.33%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">EXECUTIVE:</td>
                <td style="width: 62%;">
                  <div>&#160;</div>
                </td>
              </tr>
              <tr>
                <td rowspan="1" style="width: 33.33%;">&#160;</td>
                <td rowspan="1" style="width: 5%;">&#160;</td>
                <td rowspan="1" style="width: 62%;">&#160;</td>
              </tr>
              <tr>
                <td rowspan="1" style="width: 33.33%;">&#160;</td>
                <td rowspan="1" style="width: 5%;">By:</td>
                <td rowspan="1" style="width: 62%;"><u>/s/ William J. DeFrances</u></td>
              </tr>
              <tr>
                <td rowspan="1" style="width: 33.33%;">&#160;</td>
                <td rowspan="1" style="width: 5%;">Name: <br>
                </td>
                <td rowspan="1" style="width: 62%;">William J. DeFrances</td>
              </tr>
              <tr>
                <td rowspan="1" style="width: 33.33%;">&#160;</td>
                <td rowspan="1" style="width: 5%;">Title:</td>
                <td rowspan="1" style="width: 62%;">Vice President and Chief Accounting Officer</td>
              </tr>

          </table>
        </div>
        <div>&#160;</div>
        <div><br>
        </div>
        <div>
          <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
      </div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.19
<SEQUENCE>4
<FILENAME>ef20039038_ex10-19.htm
<DESCRIPTION>AMENDMENT NO. 4 TO LEASE AGREEMENT BETWEEN BOMAX PROPERTIES, LLC AND TRANSACT
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <div>
      <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
      <div>
        <div style="text-align: right; font-weight: bold;">Exhibit 10.19</div>
        <div><br>
        </div>
        <div style="text-align: center; font-weight: bold;">AMENDMENT NO. 4 TO LEASE AGREEMENT</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 36pt;">This Amendment No. 4 to Lease Agreement (this &#8220;<u>Amendment</u>&#8221;) dated as of the 11<sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">th</sup> day of July, 2022, made by
          and between BOMAX HOLDINGS LLC, a New York limited liability company with an address at 3 East Evergreen Road, #1045, New City, New York 10965-5101&#160; (&#8220;<u>Landlord</u>&#8221;) and TRANSACT TECHNOLOGIES INCORPORATED, a Delaware corporation with an
          address 1 Hamden Center, 2319 Whitney Avenue, Suite 3B&#160;&#160; (&#8220;<u>Tenant</u>&#8221;)</div>
        <div><br>
        </div>
        <div style="text-align: center;">WITNESSETH</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 36pt;">WHEREAS, Landlord and Tenant are, respectively, the Landlord and the Tenant under the Lease dated July 18, 2001, as amended by: (i) Amendment No. 1 to Lease Agreement dated as of May 8, 2012,
          (ii) Amendment No. 2 to Lease Agreement dated as of January 14, 2016, and (iii) Amendment No. 3 to Lease Agreement dated as of February 28, 2020 (as amended, the &#8220;<u>Lease</u>&#8221;) with respect to the property known as 20 Bomax Drive, Village of
          Lansing, County of Tompkins, State of New York (the &#8220;Property) as more particularly described in the Lease; and</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 36pt;">WHEREAS&#160; Bomax Properties LLC, assigned the Lease to Landlord, and Landlord assumed the Lease as of March 3<sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">rd</sup>&#160;
          2022; and</div>
        <div><br>
        </div>
        <div style="text-align: justify; text-indent: 36pt;">WHEREAS, Landlord and Tenant desire to modify certain of the Lease terms;</div>
        <div><br>
        </div>
        <div style="text-align: justify;">Notwithstanding any clause in this Lease to the contrary, the following provisions shall prevail:</div>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zfabc960760dd4308bab3388a418b6de3">

            <tr>
              <td style="width: 18pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top;">1.</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>Tenant shall maintain, at all times during the Lease Term (as defined in the Lease), comprehensive general liability insurance issued by an insurance company licensed to do business in the State of New York that is reasonably
                  satisfactory to Landlord.&#160; During the Lease Term, Tenant shall provide Landlord with certificate(s) of insurance in a form reasonably acceptable to Landlord evidencing the foregoing insurance so maintained by Tenant and naming Landlord
                  and Landlord&#8217;s mortgagees, if any, as additional insured parties. The insurance limit coverage will be $2M General Aggregate/$1M each occurrence and $100,000.00 in property damage coverage.</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="za680184482144d42bf3c9a50ed3fbc8a">

            <tr>
              <td style="width: 18pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top;">2.</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>The remaining provisions of the Lease shall remain in full force and effect, except as the same may be in conflict with this Amendment.</div>
              </td>
            </tr>

        </table>
        <div>&#160;</div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zc64c2df76ed64039ab13c68340242a8a">

            <tr>
              <td style="width: 18pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top;">3.</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div>This Amendment may be signed in counterparts and all copies are the same as the originals.</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <div style="text-align: justify;">IN WITNESS WHEREOF, the parties hereto have executed and delivered this Amendment to the Lease as of the date and year first above written.</div>
        <div><br>
        </div>
        <div>
          <table cellspacing="0" cellpadding="0" border="0" id="z738735f9ada443db9654318bdaf5af1d" style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000; width: 100%;">

              <tr>
                <td style="width: 40%;">LANDLORD:&#160; <br>
                </td>
                <td colspan="2" rowspan="1">TENANT:</td>
              </tr>
              <tr>
                <td style="width: 40%;">Bomax Holdings LLC <br>
                </td>
                <td style="width: 6%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 54%;">TransAct Technologies Incorporated</td>
              </tr>

          </table>
        </div>
        <div><br>
        </div>
        <div>
          <table cellspacing="0" cellpadding="0" border="0" id="z4343490061774e3f86c96b4777d0d91c" style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000; width: 100%;">

              <tr>
                <td style="width: 4%;">By:</td>
                <td style="width: 35%;"><u>/s/ Mark Junger&#160;&#160;&#160;&#160;&#160; <br>
                  </u></td>
                <td style="width: 22%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 4%;">By:<br>
                </td>
                <td style="width: 35%;"><u>/s/ Steven A. DeMartino</u></td>
              </tr>

          </table>
        </div>
        <div>
          <table cellspacing="0" cellpadding="0" border="0" id="zbd931dacd7034f1389b068c25fd27704" style="font-family: 'Times New Roman'; font-size: 10pt; color: #000000; width: 100%;">

              <tr>
                <td style="width: 5%;">Name:</td>
                <td style="width: 34%;">Mark Junger</td>
                <td style="width: 22%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">Name:</td>
                <td style="width: 34%;">Steven A. DeMartino</td>
              </tr>
              <tr>
                <td style="width: 5%;">Title:</td>
                <td style="width: 34%;">Managing Member <br>
                </td>
                <td style="width: 22%;">
                  <div>&#160;</div>
                </td>
                <td style="width: 5%;">Title:</td>
                <td style="width: 34%;">President and CFO</td>
              </tr>

          </table>
        </div>
        <div>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br>
        </div>
        <div>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br>
          <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
      </div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-19
<SEQUENCE>5
<FILENAME>ef20039038_ex19.htm
<DESCRIPTION>TRANSACT TECHNOLOGIES INCORPORATED INSIDER TRADING POLICY
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
    <div>
      <div style="text-align: right; margin-right: 1.05pt; font-weight: bold;">EXHIBIT 19</div>
      <div>&#160;</div>
      <div style="text-align: center; margin-right: 1.05pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
      <div>&#160;</div>
      <div style="text-align: center; margin-right: 1.05pt; font-weight: bold;">INSIDER TRADING POLICY</div>
      <div>&#160;</div>
      <div style="text-align: justify; margin-right: 1.05pt;"><font style="font-weight: bold;">1.</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160; <font style="font-weight: bold;">PURPOSE</font></div>
      <div>&#160;</div>
      <div style="text-align: justify; text-indent: 36pt; margin-right: 1.05pt;">This Insider Trading Policy (this &#8220;<font style="font-weight: bold;">Policy</font>&#8221;) provides insider trading guidelines to Directors, Officers and employees of TransAct
        Technologies Incorporated (the &#8220;<font style="font-weight: bold;">Company</font>&#8221;), as well as to other persons or entities informed by management to be subject to this Policy (each a <font style="font-weight: bold;">&#8220;Covered Person&#8221;</font> and
        collectively &#8220;<font style="font-weight: bold;">Covered Persons</font>&#8221;). Additionally, this Policy applies to family members, other members of a person&#8217;s household and entities controlled by a person covered by this Policy, as described further
        below.</div>
      <div>&#160;</div>
      <div style="text-align: justify; text-indent: 36pt; margin-right: 1.05pt;">This Policy provides guidelines with respect to transactions in, and gifts of, securities of the Company, and the treatment of confidential information about the Company and
        the companies with which the Company has a business relationship.&#160; The Company has adopted this Policy to promote compliance with federal, state and foreign securities laws that prohibit Covered Persons, if they are aware of material nonpublic
        information (&#8220;<font style="font-weight: bold;">MNPI</font>&#8221;) about the Company, from (i) buying, selling, recommending or making other transfers of securities of the Company, and (ii) providing MNPI to other persons, including relatives, friends
        and business acquaintances, who may trade on the basis of that information.&#160; The consequences of an insider trading violation can be severe, both for a Covered Person and for the Company.&#160; The Company has adopted this Policy to protect Covered
        Persons and the Company from the serious liabilities and penalties that can result from such violations.</div>
      <div>&#160;</div>
      <div style="text-align: justify; margin-right: 1.05pt;"><font style="font-weight: bold;">2.</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160; <font style="font-weight: bold;">INDIVIDUAL RESPONSIBILITY</font></div>
      <div>&#160;</div>
      <div style="text-align: justify; text-indent: 36pt; margin-right: 1.05pt;">Each individual subject to this Policy is responsible for complying with this Policy in all respects and ensuring that any family member or other person or entity whose
        transactions are subject to this Policy also complies. In all cases, the responsibility for determining whether an individual is in possession of MNPI rests with that individual, and any action on the part of the Company, any Director, Officer or
        any other employee of the Company pursuant to this Policy (or otherwise) does not in any way constitute legal advice or insulate an individual from liability under applicable securities laws.</div>
      <div>&#160;</div>
      <div style="text-align: justify; margin-right: 1.05pt;"><font style="font-weight: bold;">3.</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160; <font style="font-weight: bold;">STATEMENT OF GENERAL POLICY</font></div>
      <div>&#160;</div>
      <div style="text-align: justify; text-indent: 36pt; margin-right: 1.05pt;">It is the policy of the Company to prohibit the unauthorized disclosure of any nonpublic information acquired in the workplace and the misuse of MNPI in securities trading.&#160;
        This Policy sets forth procedures that Covered Persons are required to follow.</div>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z8fb677c9df624585a331167533a0dd5a">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>This Policy applies to all transactions in the Company&#8217;s securities, including, without limitation, common stock, preferred stock and debt securities, as well as transactions in the securities of the Company&#8217;s customers and other
                companies with which the Company has business relationships, as applicable (collectively, &#8220;<font style="font-weight: bold;">Securities</font>&#8221;).</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z7b019fae6c1b4ae5b96a93d4f7c4fe1c">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>It is not possible to define all categories of &#8220;<font style="font-weight: bold;">material</font>&#8221; information. There is no bright-line standard for assessing materiality; rather, materiality is based on an assessment of all of the facts
                and circumstances, and is often evaluated by enforcement authorities with the benefit of hindsight.&#160; However, information should generally be regarded as material if: (i) there is a substantial likelihood that a reasonable investor would
                consider it important in making his or her investment decisions, or (ii) the information is reasonably certain to have a substantial effect on the price of a company&#8217;s securities.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z6615e1534ee940049c78ee0fc354f275">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Information is considered &#8220;<font style="font-weight: bold;">nonpublic</font>&#8221; if it has not been disseminated in a manner making it available to investors generally, such as through disclosure in an annual, quarterly or current report
                filed with the Securities and Exchange Commission (the &#8220;<font style="font-weight: bold;">SEC</font>&#8221;), inclusion in a press release, or wide reporting in the media, and until investors have had a reasonable period of time to react to the
                information.&#160; Generally, at least two (2) full trading days following the dissemination of the information to the public is sufficient time for information to no longer be considered &#8220;nonpublic.&#8221;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zec2413d7fe844f00b7b3003ea8a3878c">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>In accordance with federal law, this Policy prohibits Covered Persons from trading in Securities while in possession of MNPI about the Company, which is also known as &#8220;inside information.&#8221;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z8089bcbb1d204a64bc3adeb941f84683">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Anyone subject to this policy who is unsure whether the information that he or she possesses is material or nonpublic should consult the Chief Financial Officer of the Company for guidance before trading in any Securities.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="text-align: justify;"><font style="font-weight: bold;">4.</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font style="font-weight: bold;">APPLICABILITY OF POLICY</font></div>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z50d0553aef9a4a2389988afb0adf06d2">

          <tr>
            <td style="width: 20.25pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>In addition to all Covered Persons, this Policy also applies to family members who reside in a Covered Person&#8217;s household (including a spouse, a child away at college, stepchildren, grandchildren, parents, stepparents, grandparents,
                siblings and in-laws), anyone else who lives in a Covered Person&#8217;s household, and any family members who do not live in a Covered Person&#8217;s household but whose transactions in Company Securities are directed by a Covered Person or are
                subject to a Covered Person&#8217;s influence or control, such as parents or children who consult with a Covered Person before they trade in Securities. Covered Persons are responsible for the transactions of these other individuals and therefore
                should make them aware of the need to confer with such Covered Persons before they trade in Securities, and each such Covered Person should treat all such transactions for purposes of this Policy and applicable securities laws as if the
                transactions were for such Covered Person&#8217;s own account.</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z9e82f6b6152e4c70bdcf1be94d7878c1">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>This Policy applies to any entities that a Covered Person influences or controls, including any corporations, partnerships or trusts (collectively referred to as <font style="font-weight: bold;">&#8220;Controlled Entities&#8221;</font>), and
                transactions by these Controlled Entities should be treated for purposes of this Policy and applicable securities laws as if they were for such Covered Person&#8217;s own account.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z6f2545b5b259489eb2c8629a24d3155c">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>This Policy establishes additional prohibitions that apply to Covered Persons who have access to confidential business and financial information about the Company, including, without limitation, employees and consultants working in or
                with the Company&#8217;s finance group (&#8220;<font style="font-weight: bold;">Inside Employees/Consultants</font>&#8221;).&#160; These persons are required to adhere to these additional prohibitions.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z7648a12ae8d74d31816b6a3b10e42cc7">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>This Policy and the guidelines described herein also apply to MNPI relating to other companies, including, but not limited to, the Company&#8217;s customers, vendors, suppliers and other related parties, when that information is obtained in
                the course of employment with, or other services performed on behalf of, the Company.&#160; All persons subject to this Policy must avoid trading in securities of customers, vendors, suppliers and other related parties using MNPI received from
                such parties.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zf14a7ba78ab24019a56ffa33bf111a44">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>This Policy prohibits the disclosure and dissemination of MNPI about a company, either within or outside the Company, except on a reasonable need-to-know basis that furthers a legitimate business purpose of such company or the Company.&#160;
                Unlawfully disclosing or &#8220;tipping&#8221; MNPI about a company to others, who then trade while in possession of MNPI, may give rise to claims against the &#8220;tipper&#8221; of the information.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z4a1248a4391e4bb8b4fc1b3fe12dfc27">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>This Policy will continue to apply to former and retired Directors and Officers until the later of: (i) the expiration of two (2) full trading days after any MNPI known to such persons has become public or is no longer material; and (ii)
                the expiration of ninety (90) calendar days following termination of service with the Company.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
      </div>
      <div style="text-align: justify; margin-right: 1.05pt;"><font style="font-weight: bold;">4.</font>&#160;&#160;&#160;&#160;&#160; &#160; &#160;&#160; <font style="font-weight: bold;">CERTAIN EXCEPTIONS TO THE POLICY</font></div>
      <div>&#160;</div>
      <div style="text-align: justify; text-indent: 36pt; margin-right: 1.05pt;">This Policy does <u>NOT</u> apply in the case of the following transactions, except as specifically noted:</div>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z13ed31cec4cb470aae027cdf3b75d577">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Certain Stock Option Exercises</font>.&#160; This Policy does <u>not</u> apply to the exercise of an employee stock option acquired pursuant to the Company&#8217;s equity plans, including the withholding of shares
                of stock to satisfy the exercise price of an option or tax withholding obligations that do not involve market transactions in Company securities.&#160; However, this Policy <u>does apply</u> to broker-assisted cashless exercises of stock
                options and to any other market sale (whether of the purchased option shares or other shares owned by the Covered Person) for the purpose of generating the cash needed to pay the exercise price of an option<font style="font-style: italic;">&#160;</font>or
                to pay taxes.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z32f08406f4b545e0ad67ca209882ac00">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Pre-Existing/10b5-1 Trading Plans.&#160; </font>Notwithstanding the general prohibition set forth above, a Covered Person may effect transactions in Securities during a Blackout Period (as defined in Section
                5 of this Policy), or at a time when the Covered Person is in possession of MNPI, if such transactions are pursuant to a trading program that complies with the requirements of Rule 10b5-1 under the Securities Exchange Act of 1934, as
                amended (the &#8220;<font style="font-weight: bold;">Exchange Act</font>&#8221;).&#160; Rule 10b5-1 under the Exchange Act provides a defense from insider trading liability under Rule 10b-5. In order to be eligible to rely on this defense, a Covered Person
                must enter into a Rule 10b5-1 plan for transactions in Securities that meets certain conditions specified in the Rule (a <font style="font-weight: bold;">&#8220;Rule 10b5-1 Plan&#8221;</font>). If the plan meets the requirements of Rule 10b5-1,
                transactions in Securities may occur even when the person who has entered into the plan is aware of MNPI. To comply with this Policy, a Rule 10b5-1 Plan must be approved by the Chief Financial Officer and meet the requirements of Rule
                10b5-1, as generally set forth below:</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z98dc7675cc934acda05e2607cacf8b75">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">o</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>A Rule 10b5-1 Plan must be entered into at a time when the person entering into the plan is not aware of MNPI.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z577d1a6a45034bd2b0711b4c7e3ef2dd">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">o</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Once the plan is adopted, the person must not exercise any influence over the amount of securities to be traded, the price at which they are to be traded or the date of the trade. The plan must either specify the amount, pricing and
                timing of transactions in advance or a formula to make such determinations or delegate discretion on these matters to an independent third party.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z816e3e154c774da8bca894b199258f89">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">o</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>The plan must include a cooling-off period after the plan is adopted before trading can commence that, for Directors or Officers, ends on the later of 90 days after the adoption of the Rule 10b5-1 Plan or two business days following the
                disclosure of the Company&#8217;s financial results in an SEC periodic report for the fiscal quarter in which the plan was adopted (but in any event, the required cooling-off period is subject to a maximum of 120 days after adoption of the plan),
                and for persons other than Directors or Officers, 30 days following the adoption or modification of a Rule 10b5-1 Plan.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z748b8df5d3654c9f859f8248a278a6b3">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">o</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>A person may not enter into overlapping Rule 10b5-1 Plans (subject to certain exceptions) and may only enter into one single-trade Rule 10b5-1 Plan during any 12-month period (subject to certain exceptions).</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z996806ba718644a68681257ffd1f1dbf">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">o</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Directors and Officers must include a representation in their Rule 10b5-1 Plan certifying that: (i) they are not aware of any MNPI; and (ii) they are adopting the Rule 10b5-1 Plan in good faith and not as part of a plan or scheme to
                evade the prohibitions in Rule 10b-5.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zcba8fb4729b1496ab535dd2149d3b3db">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">o</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>All persons entering into a Rule 10b5-1 Plan must act in good faith with respect to that plan.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
      </div>
      <div style="text-align: justify; margin-right: 0.7pt; margin-left: 36pt; color: #000000;">Any Rule 10b5-1 Plan must be submitted for approval to the Chief Financial Officer at least three business days prior to the entry into the Rule 10b5-1 Plan. No
        further pre-approval of transactions conducted pursuant to the Rule 10b5-1 Plan will be required.</div>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z8094f98f917045aaa8b252907eec2d66">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Tax Withholding by the Company.&#160; </font>This Policy does <u>not</u> apply to the withholding of stock to pay applicable withholding taxes upon the vesting of restricted stock, restricted stock units or
                other equity awards.&#160; However, Securities <u>may not</u> be sold to satisfy tax obligations during a Blackout Period (as defined in Section 5 of this Policy), or such time that the participant is in possession of MNPI absent an approved
                Rule 10b5-1 Plan.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z10f7256ca17044c880457f22e6979727">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">401(k) Plan</font>.&#160; This Policy does <u>not</u> apply to purchases of Securities in a Company 401(k) Plan resulting from a Covered Person&#8217;s periodic contribution of money to the plan pursuant to his or
                her payroll deduction election.&#160; This Policy <u>does apply</u>, however, to certain elections a Covered Person may make under such a Company 401(k) Plan, including: (i) an election to increase the percentage of his or her periodic
                contributions that will be allocated to his or her Company stock account; (ii) an election to make an intra-plan transfer of an existing account balance into or out of his or her Company stock account; and (iii) any transaction that would
                result in the liquidation of some or all of his or her Company stock account balance.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zd479ddbc7ba943cc8cb0dc201ac5eb94">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Employee Stock Purchase Plan.</font>&#160; Purchases of Securities under any Company employee stock purchase plan, through periodic contributions to the plan in accordance with an election made by a Covered
                Person at enrollment.&#160; However, a Covered Person may not elect to participate in such a plan for any enrollment period during a Blackout Period (as defined in Section 5 of this Policy).&#160; This Policy <u>also applies to</u> any open market
                sales of Securities purchased pursuant to such a plan by a Covered Person.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z6ef22f53a27648688727acbb6fd5925a">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Dividend Reinvestment Plan.</font>&#160; Purchases of Securities under any Company dividend reinvestment plan that results from a Covered Person&#8217;s reinvestment of dividends paid on Securities.&#160; However,
                voluntary purchases of Securities resulting from additional contributions a Covered Person makes to a Company dividend reinvestment plan, and to such Covered Person&#8217;s election to participate in such plan, or increase the level of
                participation in such plan, <u>are subject to this Policy</u>.&#160; This Policy <u>also applies to</u> open market sales by a Covered Person of Securities purchased pursuant to the plan.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zb52da0ed56ef4012b17e7c17a6b9cfd7">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Other Similar Transactions.&#160; </font>Any other purchase of Securities from the Company or sales of Securities to the Company, or any private transaction in Securities solely between Directors and/or
                Officers who have access to, or are aware of, the same MNPI are <u>not</u> subject to this Policy.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z6023196762ad4eb9ae2dd7146af95ce9">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Bona fide gifts.&#160; Bona fide </font>gifts of Securities are <u>not</u> transactions subject to any part of this Policy other than the pre-approval and pre-clearance requirement set forth in Section 5
                under the heading &#8220;Pre-Approval &amp; Pre-Clearance of Transactions in and Gifts of Securities,&#8221; below, <font style="font-style: italic;">unless</font> the person making the gift knows or has reason to believe that the recipient intends to
                sell the Securities while the Covered Person is aware of MNPI.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="text-align: justify; margin-right: 0.7pt;"><font style="font-weight: bold;">5.</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">TRADING RESTRICTIONS AND PROCEDURES</font></div>
      <div>&#160;</div>
      <div style="text-indent: 36pt; margin-right: 0.7pt; color: #000000; font-weight: bold;">Directors, Designated Officers &amp; Inside Employees/Consultants</div>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="ze3ed92ed7d334c81a6c2cc3f7e695853">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Definition of Designated Officers</font>.&#160; All Officers of the Company who are &#8220;executive officers&#8221; for purposes of Section 16 of the Exchange Act shall each be considered a &#8220;<font style="font-weight: bold;">Designated Officer</font>&#8221; (collectively, &#8220;<font style="font-weight: bold;">Designated Officers</font>&#8221;).</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zc7d93f1e786f4d50b0de1c05b4c5473f">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Pre-Approval &amp; Pre-Clearance of Transactions in and Gifts of Securities</font>. Any transaction in or gift of Securities by a Director, Designated Officer or Inside Employee/Consultant (as defined in
                Section 3 of this Policy), must be pre-approved and pre-cleared by the Chief Financial Officer of the Company, or such other officer of the Company as the Chief Financial Officer may designate from time to time.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zb4033d38024a4c83970054af2c8d1adb">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Blackout Periods</font>.&#160; Directors, Designated Officers and Inside Employees/Consultants are prohibited from trading in Securities from the date that is fifteen (15) calendar days prior to the close of
                each fiscal quarter or year through the expiration of the second (2nd) full trading day following the date of public disclosure of the Company&#8217;s financial performance and results of operations for that fiscal quarter or year (the &#8220;<font style="font-weight: bold;">Blackout Period</font>&#8221;).&#160; Additional Blackout Periods may be imposed on such persons and certain or all other Covered Persons at such times as deemed appropriate by management or the Board of Directors of the
                Company (the &#8220;<font style="font-weight: bold;">Board</font>&#8221;).&#160; Due to the confidential nature of the circumstances that may trigger such event-specific Blackout Periods, the reason for the Blackout Period may not be disclosed and the
                existence of the Blackout Period may be considered MNPI and, therefore, should not be shared.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z9c52a232090646f8af964a7b1d75d1db">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Window Periods</font>.&#160; Any transaction by a Director, Designated Officer or Inside Employee/Consultant that has been pre-approved and pre-cleared shall be effected only during the period of time
                designated for trading by the Company.&#160; &#8220;<font style="font-weight: bold;">Window Periods</font>&#8221; will commence after the second (2nd) full trading day following the release of the Company&#8217;s financial performance and results of operations
                for each fiscal quarterly or annual period, and will continue until fifteen (15) calendar days prior to the close of the next fiscal quarterly or annual period, unless management or the Board imposes a Blackout Period covering such period,
                or any portion thereof, in which case the Window Period will not open or will close earlier than in accordance with such schedule, as determined by management or the Board.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z2c8c42c5748d4039930394ce78a7502a">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Material Nonpublic Information</font>. Any Covered Person possessing MNPI concerning the Company, even if during a Window Period, should not engage in any transactions in Securities until such MNPI has
                been known publicly for at least two (2) full trading days, whether or not the Company has recommended a suspension of trading to that person, or until such information otherwise ceases to constitute MNPI.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z8cc1f6ec30e34cce9f70dec32926648e">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Section 16</font>.&#160; Directors and Designated Officers are subject to the reporting and short swing profit recovery provisions of Section 16 of the Exchange Act and must comply with the applicable
                reporting requirements under the Exchange Act and avoid engaging in short swing transactions, whether or not in possession of MNPI, and whether or not such show swing transactions would be deemed to result in a short swing profit.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="text-align: justify; margin-right: 1.05pt;"><font style="font-weight: bold;">6.</font>&#160;&#160;&#160;&#160;&#160; &#160; &#160;&#160; <font style="font-weight: bold;">PROHIBITED TRANSACTIONS</font></div>
      <div>&#160;</div>
      <div style="text-align: justify; text-indent: 36pt; margin-right: 1.05pt;">Trading in Securities by a Covered Person is subject to the following additional limitations, regardless of whether the Covered Person is in possession of MNPI:</div>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zb8793daf45344dc6890fe8a101b94007">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Short Sales</font>.&#160; Covered Persons may not engage in short sales of Securities (i.e., sales of securities that the seller does not own), including a &#8220;sale against the box&#8221; (i.e., a short sale where the
                seller owns the securities but delays delivery, i.e., retains both the short and long positions).</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z5958d460e2a54757b414d4d625d5ecaa">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Publicly Traded Options</font>.&#160; Covered Persons may not engage in speculative trading, including transactions in publicly traded options of the Company, such as puts, calls, warrants, and other
                derivative securities, on an exchange or in any other organized market.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z8e554e6bd0174cf9ba5267da217a239d">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Hedging or Monetization Transactions</font>.&#160; No Covered Person is permitted to enter into any hedging transaction with respect to Securities, including, but not limited to, the purchase or use of,
                directly or indirectly through any other persons or entities, any stock option, prepaid variable forward contracts, equity swaps, collars, exchange funds or any other instruments designed to offset any decrease in the market value of
                Securities.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z4b529bd47a3d4302a30c8023d80ce422">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Margin Accounts and Pledging of Securities</font>.&#160; Covered Persons may not pledge any of the Securities owned by them.&#160; Securities held in a margin account or pledged as collateral for a loan may be
                sold without a Covered Person&#8217;s consent by the broker, if such Covered Person fails to meet a margin call, or by the lender in foreclosure, if such Covered Person defaults on the loan, and may occur at a time when a Covered Person is aware
                of MNPI or otherwise is not permitted to trade in Securities for a loan.&#160; As a result, no Covered Person may place Securities in margin accounts, unless the margin accounts are treated as non-marginable by the brokerage firm.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z28bd07c003a14647b009fee139285c10">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">No Tipping</font>.&#160; Covered Persons may not pass MNPI on to others or recommend to anyone the purchase or sale of any Securities when aware of such information.&#160; This practice is known as &#8220;tipping&#8221; and
                violates the federal securities laws, even if a Covered Person did not trade or gain any benefit from another person&#8217;s trading.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
        <div style="page-break-after: always;" class="BRPFPageBreak">
          <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zf49b06e2c9f14789af755ec598d04f35">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">&#8226;</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div><font style="font-style: italic;">Post-Termination Transactions</font>.&#160; If a Covered Person is aware of MNPI at the time he or she terminates his or her employment or services with the Company, he or she may not trade in Securities
                until such information has become public or is no longer material.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="text-align: justify; margin-right: 1.05pt;"><font style="font-weight: bold;">7.</font>&#160;&#160;&#160;&#160; &#160; &#160;&#160;&#160; <font style="font-weight: bold;">PENALTIES</font></div>
      <div>&#160;</div>
      <div style="text-align: justify; text-indent: 36pt; margin-right: 1.05pt;">Violations of any portion of this Policy may result in disciplinary action, including, without limitation, suspension without pay, demotion, salary reduction, disqualification
        for bonuses and/or equity incentives, or discharge from employment or service with the Company.&#160; In addition, violations of insider trading requirements may subject a Covered Person to civil and criminal penalties, fines and jail terms.&#160; Serious
        sanctions could also be imposed against supervisors or managers of violators, as well as against the Company.</div>
      <div>&#160;</div>
      <div style="text-align: justify; text-indent: 36pt; margin-right: 1.05pt;">Covered Persons should contact the Company&#8217;s Chief Financial Officer concerning questions about trading in Securities.</div>
      <div>&#160;</div>
      <div><br>
      </div>
      <div>
        <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>6
<FILENAME>ef20039038_ex23-1.htm
<DESCRIPTION>CONSENT OF MARCUM LLP
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
    <div>
      <div style="text-align: right; font-weight: bold;">Exhibit 23.1</div>
      <div><br>
      </div>
      <div style="text-align: center; font-weight: bold;"><u>INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM&#8217;S CONSENT</u></div>
      <div><br>
      </div>
      <div style="text-align: justify;">We consent to the incorporation by reference in the Registration Statement of TransAct Technologies Incorporated on Form S-8<font style="font-weight: bold;">&#160;</font>File Nos. 333-203184, 333-132624, 333-170515,
        333-221514, 333-248054 and 333-273888 of our report dated March 24, 2025,<sup style="font-weight: bold; vertical-align: text-top; line-height: 1; font-size: smaller;">&#160;</sup>with respect to our audits of the consolidated financial statements of
        TransAct Technologies Incorporated as of December 31, 2024 and 2023 and for the years ended December 31, 2024 and 2023, which report is included in this Annual Report on Form 10-K of TransAct Technologies Incorporated for the year ended December
        31, 2024.</div>
      <div><br>
      </div>
      <div>/s/ Marcum <font style="font-variant: small-caps;">llp</font></div>
      <div><br>
      </div>
      <div>Hartford, CT</div>
      <div>March 24, 2025</div>
      <div><br>
      </div>
      <br>
    </div>
    <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"> </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>7
<FILENAME>ef20039038_ex31-1.htm
<DESCRIPTION>CERTIFICATION OF CEO PURSUANT TO SECTION 302 OF SOX ACT OF 2002
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <div>
      <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
      <div>
        <div style="text-align: right; color: #000000; font-weight: bold;">Exhibit 31.1</div>
        <div><br>
        </div>
        <div style="text-align: center; color: #000000; font-weight: bold;"><u>RULE 13a-14(a) CERTIFICATION OF CHIEF EXECUTIVE OFFICER IN ACCODANCE WITH SECTION 302 OF THE</u></div>
        <div style="text-align: center; color: #000000; font-weight: bold;"><u>SARBANES-OXLEY ACT OF 2002</u></div>
        <div><br>
        </div>
        <div style="color: #000000;">I, John M. Dillon, certify that:</div>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z129f12b209c2451982c65a64fa6bbd08">

            <tr>
              <td style="width: 18pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: #000000;">1.</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">I have reviewed this Annual Report on Form 10-K of TransAct Technologies Incorporated;</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zb9dffde7431f448cafe88c5ffaa063a9">

            <tr>
              <td style="width: 18pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: #000000;">2.</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">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;</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zb50d2ae961c94ba99c0d19213682ac79">

            <tr>
              <td style="width: 18pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: #000000;">3.</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">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;</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zd15028a663204e5db8aba1b296524513">

            <tr>
              <td style="width: 18pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: #000000;">4.</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">The registrant&#8217;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:</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z1cf6ba559d4444489fe675528a823b10">

            <tr>
              <td style="width: 54pt;">&#160;</td>
              <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(a)</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">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;</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z1d0b7dd14b85497bb5dbc611ca0880be">

            <tr>
              <td style="width: 54pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(b)</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">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;</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zfbf601c53a4a4237b9a917da01535727">

            <tr>
              <td style="width: 54pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(c)</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">Evaluated the effectiveness of the registrant&#8217;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</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z12a723aef02d4ed09cdb6ccc18d1e901">

            <tr>
              <td style="width: 54pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(d)</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant's fourth fiscal quarter in the
                  case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zd2b202249f1247beb3140949ccc95295">

            <tr>
              <td style="width: 18pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: #000000;">5.</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">The registrant's other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the
                  registrant's board of directors (or persons performing the equivalent functions):</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zfe5e6ae36f6a4d5ab11cfaf725abad6b">

            <tr>
              <td style="width: 54pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(a)</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record,
                  process, summarize and report financial information; and</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zb4fdc95784f0478c9c1cf54f87c2e849">

            <tr>
              <td style="width: 54pt;"><br>
              </td>
              <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(b)</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <div>Date: March 24, 2025</div>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zcca8b766a3d54eafaa17e4243540472e">

            <tr>
              <td style="width: 49.91%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div>/s/ John M. Dillon</div>
              </td>
              <td style="width: 50.09%; vertical-align: top;">&#160;</td>
            </tr>
            <tr>
              <td style="width: 49.91%; vertical-align: top;">
                <div>John M. Dillon</div>
              </td>
              <td style="width: 50.09%; vertical-align: top;">&#160;</td>
            </tr>
            <tr>
              <td style="width: 49.91%; vertical-align: top;">
                <div>Chief Executive Officer</div>
              </td>
              <td style="width: 50.09%; vertical-align: top;">&#160;</td>
            </tr>

        </table>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>
          <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
      </div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>8
<FILENAME>ef20039038_ex31-2.htm
<DESCRIPTION>CERTIFICATION OF CFO PURSUANT TO SECTION 302 OF SOX ACT OF 2002
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
    <div>
      <div style="text-align: right; color: #000000; font-weight: bold;">Exhibit 31.2</div>
      <div><br>
      </div>
      <div style="text-align: center; color: #000000; font-weight: bold;"><u>RULE 13a-14(a) CERTIFICATION OF CHIEF EXECUTIVE OFFICER IN ACCODANCE WITH SECTION 302 OF THE</u></div>
      <div style="text-align: center; color: #000000; font-weight: bold;"><u>SARBANES-OXLEY ACT OF 2002</u></div>
      <div><br>
      </div>
      <div style="color: #000000;">I, Steven A. DeMartino, certify that:</div>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="ze36066f712bb4192ad2661599403dee0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">1.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">I have reviewed this Annual Report on Form 10-K of TransAct Technologies Incorporated;</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zd7d831ce13134a9aa51215546f09c2bd">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">2.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">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;</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z3125942577b84619a9a60d6fde753ff4">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">3.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">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;</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z964dd035fc9a46c98aa86acdd8502b22">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">4.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">The registrant&#8217;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:</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z01b02c5914984c4a893fbc53e08ac615">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(a)</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">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;</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z77cb44d722644829a14fe2ff64dd488a">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(b)</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">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;</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z0e371d5f7d354df4b2224bdff61939c6">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(c)</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">Evaluated the effectiveness of the registrant&#8217;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</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zeacb8002289d4f61921fe753987c6c17">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(d)</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div>Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report)
                that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting<font style="color: #000000;">; and</font></div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z3f1ffa5ac0cf41f79ec8929a32d2ce7a">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: #000000;">5.</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">The registrant's other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the
                registrant's board of directors (or persons performing the equivalent functions):</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z26397f8e76634144901028d1525fd41d">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(a)</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record,
                process, summarize and report financial information; and</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z8324e28a336c43669bcf09d88ff6df9b">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0);">(b)</td>
            <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="color: #000000;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
      <div>Date: March 24, 2025</div>
      <div><br>
      </div>
      <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zece1c97b495b404abc3a737d1939fbc9">

          <tr>
            <td style="width: 50.31%; vertical-align: top; border-bottom: #000000 2px solid;">
              <div>/s/ Steven A. DeMartino</div>
            </td>
            <td style="width: 49.69%; vertical-align: top;">&#160;</td>
          </tr>
          <tr>
            <td style="width: 50.31%; vertical-align: top;">
              <div>Steven A. DeMartino</div>
            </td>
            <td style="width: 49.69%; vertical-align: top;">&#160;</td>
          </tr>
          <tr>
            <td style="width: 50.31%; vertical-align: top;">
              <div>President, Chief Financial Officer, Treasurer and Secretary</div>
            </td>
            <td style="width: 49.69%; vertical-align: top;">&#160;</td>
          </tr>

      </table>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>
        <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32
<SEQUENCE>9
<FILENAME>ef20039038_ex32.htm
<DESCRIPTION>CERTIFICATION OF CEO AND CFO PURSUANT TO SECTION 906 OF SOX ACT OF 2002
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 25.3.1.5296
         Copyright 1995 - 2025 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <div>
      <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
      <div>
        <div style="text-align: right; font-weight: bold;">Exhibit 32</div>
        <div><br>
        </div>
        <div style="text-align: center; font-weight: bold;">CERTIFICATION OF CHIEF EXECUTIVE OFFICER AND CHIEF FINANCIAL OFFICER</div>
        <div style="text-align: center; font-weight: bold;">PURSUANT TO 18 U.S.C. SECTION 1350</div>
        <div style="text-align: center; font-weight: bold;">AS ADOPTED PURSUANT TO</div>
        <div style="text-align: center; font-weight: bold;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</div>
        <div><br>
        </div>
        <div style="text-align: justify;">In connection with the Annual Report of TransAct Technologies Incorporated (the &#8220;Company&#8221;) on Form 10-K for the year ended December 31, 2024, as filed with the Securities and Exchange Commission on the date hereof
          (the &#8220;Report&#8221;), each of the undersigned officers of the Company certifies, pursuant to 18 U.S.C. &#167; 1350, as adopted pursuant to &#167; 906 of the Sarbanes-Oxley Act of 2002, that to the best of his knowledge:</div>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="z4d467400a969480b94bcf1cb37ee81e4">

            <tr>
              <td style="width: 27pt;">&#160;</td>
              <td style="width: 26.9pt; vertical-align: top; color: rgb(0, 0, 0);">(1)</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zef558cb8ea5c4c1ba0717b19e4b2c33b">

            <tr>
              <td style="width: 27pt;">&#160;</td>
              <td style="width: 26.9pt; vertical-align: top; color: rgb(0, 0, 0);">(2)</td>
              <td style="width: auto; vertical-align: top; text-align: justify;">
                <div style="color: #000000;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</div>
              </td>
            </tr>

        </table>
        <div><br>
        </div>
        <div>Date:&#160; March 24, 2025</div>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zf37d2ddec5934705acf5c0e06a654c69">

            <tr>
              <td style="width: 50.04%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div>/s/ John M. Dillon</div>
              </td>
              <td style="width: 49.96%; vertical-align: top;">&#160;</td>
            </tr>
            <tr>
              <td style="width: 50.04%; vertical-align: top;">
                <div>John M. Dillon</div>
              </td>
              <td style="width: 49.96%; vertical-align: top;">&#160;</td>
            </tr>
            <tr>
              <td style="width: 50.04%; vertical-align: top;">
                <div>Chief Executive Officer</div>
              </td>
              <td style="width: 49.96%; vertical-align: top;">&#160;</td>
            </tr>

        </table>
        <div><br>
        </div>
        <div>Date:&#160; March 24, 2025</div>
        <div><br>
        </div>
        <table cellspacing="0" cellpadding="0" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z348128d69c2b4ba2a6263502d71541ad">

            <tr>
              <td style="width: 50.04%; vertical-align: top; border-bottom: #000000 2px solid;">
                <div>/s/ Steven A. DeMartino</div>
              </td>
              <td style="width: 49.96%; vertical-align: top;">&#160;</td>
            </tr>
            <tr>
              <td style="width: 50.04%; vertical-align: top;">
                <div>Steven A. DeMartino</div>
              </td>
              <td style="width: 49.96%; vertical-align: top;">&#160;</td>
            </tr>
            <tr>
              <td style="width: 50.04%; vertical-align: top;">
                <div>President, Chief Financial Officer, Treasurer and Secretary</div>
              </td>
              <td style="width: 49.96%; vertical-align: top;">&#160;</td>
            </tr>

        </table>
        <div><br>
        </div>
        <br>
        <div>
          <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
      </div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>10
<FILENAME>tact-20241231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 25.3.1.5296 Broadridge-->
<xs:schema targetNamespace="http://transact-tech.com/20241231" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tact="http://transact-tech.com/20241231" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:us-types="http://fasb.org/us-types/2024" xmlns:srt-types="http://fasb.org/srt-types/2024">
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xlink:type="simple" xlink:href="tact-20241231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tact-20241231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tact-20241231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tact-20241231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:roleType roleURI="http://transact-tech.com/role/DocumentAndEntityInformation" id="DocumentAndEntityInformation">
        <link:definition>000100 - 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://transact-tech.com/role/ConsolidatedBalanceSheets" id="ConsolidatedBalanceSheets">
        <link:definition>010000 - Statement - CONSOLIDATED BALANCE SHEETS</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://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical" id="ConsolidatedBalanceSheetsParenthetical">
        <!--Parent Role: CONSOLIDATED BALANCE SHEETS-->
        <link:definition>010100 - Statement - 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://transact-tech.com/role/ConsolidatedStatementsOfOperations" id="ConsolidatedStatementsOfOperations">
        <link:definition>020000 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</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://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome" id="ConsolidatedStatementsOfComprehensiveLossIncome">
        <link:definition>030000 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME</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://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity" id="ConsolidatedStatementsOfChangesInShareholdersEquity">
        <link:definition>040000 - Statement - CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY</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://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" id="ConsolidatedStatementsOfCashFlows">
        <link:definition>050000 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</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://transact-tech.com/role/DescriptionOfBusiness" id="DescriptionOfBusiness">
        <link:definition>060100 - Disclosure - 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://transact-tech.com/role/SummaryOfSignificantAccountingPolicies" id="SummaryOfSignificantAccountingPolicies">
        <link:definition>060200 - 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://transact-tech.com/role/Inventories" id="Inventories">
        <link:definition>060300 - Disclosure - Inventories</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://transact-tech.com/role/FixedAssetsNet" id="FixedAssetsNet">
        <link:definition>060400 - Disclosure - Fixed 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://transact-tech.com/role/IntangibleAssetsNet" id="IntangibleAssetsNet">
        <link:definition>060500 - 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://transact-tech.com/role/AccruedLiabilities" id="AccruedLiabilities">
        <link:definition>060600 - Disclosure - Accrued liabilities</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://transact-tech.com/role/SegmentReporting" id="SegmentReporting">
        <link:definition>060700 - 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://transact-tech.com/role/RetirementSavingsPlan" id="RetirementSavingsPlan">
        <link:definition>060800 - Disclosure - Retirement savings plan</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://transact-tech.com/role/Borrowings" id="Borrowings">
        <link:definition>060900 - Disclosure - Borrowings</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://transact-tech.com/role/StockIncentivePlans" id="StockIncentivePlans">
        <link:definition>061000 - Disclosure - Stock 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://transact-tech.com/role/IncomeTaxes" id="IncomeTaxes">
        <link:definition>061100 - Disclosure - Income taxes</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://transact-tech.com/role/EarningsPerShare" id="EarningsPerShare">
        <link:definition>061200 - Disclosure - Earnings 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://transact-tech.com/role/StockRepurchaseProgram" id="StockRepurchaseProgram">
        <link:definition>061300 - 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://transact-tech.com/role/GeographicAreaInformation" id="GeographicAreaInformation">
        <link:definition>061400 - Disclosure - Geographic area 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://transact-tech.com/role/Leases" id="Leases">
        <link:definition>061500 - Disclosure - Leases</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://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited" id="QuarterlyResultsOfOperationsUnaudited">
        <link:definition>061600 - Disclosure - Quarterly results 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://transact-tech.com/role/RelatedPartyTransactions" id="RelatedPartyTransactions">
        <link:definition>061700 - 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://transact-tech.com/role/SubsequentEvents" id="SubsequentEvents">
        <link:definition>061800 - Disclosure - Subsequent events</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://transact-tech.com/role/InsiderTradingArrangements" id="InsiderTradingArrangements">
        <link:definition>061900 - Disclosure - Insider Trading 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://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure" id="CybersecurityRiskManagementAndStrategyDisclosure">
        <link:definition>062000 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure</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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies" id="SummaryOfSignificantAccountingPoliciesPolicies">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>070200 - 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables" id="SummaryOfSignificantAccountingPoliciesTables">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>080200 - Disclosure - Summary of significant accounting policies (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://transact-tech.com/role/InventoriesTables" id="InventoriesTables">
        <!--Parent Role: Inventories-->
        <link:definition>080300 - Disclosure - Inventories (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://transact-tech.com/role/FixedAssetsNetTables" id="FixedAssetsNetTables">
        <!--Parent Role: Fixed assets, net-->
        <link:definition>080400 - Disclosure - Fixed 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://transact-tech.com/role/IntangibleAssetsNetTables" id="IntangibleAssetsNetTables">
        <!--Parent Role: Intangible assets, net-->
        <link:definition>080500 - 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://transact-tech.com/role/AccruedLiabilitiesTables" id="AccruedLiabilitiesTables">
        <!--Parent Role: Accrued liabilities-->
        <link:definition>080600 - Disclosure - Accrued liabilities (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://transact-tech.com/role/SegmentReportingTables" id="SegmentReportingTables">
        <!--Parent Role: Segment reporting-->
        <link:definition>080700 - Disclosure - Segment reporting (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://transact-tech.com/role/StockIncentivePlansTables" id="StockIncentivePlansTables">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>081000 - Disclosure - Stock 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://transact-tech.com/role/IncomeTaxesTables" id="IncomeTaxesTables">
        <!--Parent Role: Income taxes-->
        <link:definition>081100 - Disclosure - Income taxes (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://transact-tech.com/role/EarningsPerShareTables" id="EarningsPerShareTables">
        <!--Parent Role: Earnings per share-->
        <link:definition>081200 - Disclosure - Earnings 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://transact-tech.com/role/GeographicAreaInformationTables" id="GeographicAreaInformationTables">
        <!--Parent Role: Geographic area information-->
        <link:definition>081400 - Disclosure - Geographic area information (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://transact-tech.com/role/LeasesTables" id="LeasesTables">
        <!--Parent Role: Leases-->
        <link:definition>081500 - Disclosure - Leases (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://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables" id="QuarterlyResultsOfOperationsUnauditedTables">
        <!--Parent Role: Quarterly results of operations (unaudited)-->
        <link:definition>081600 - Disclosure - Quarterly results of operations (unaudited) (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://transact-tech.com/role/DescriptionOfBusinessDetails" id="DescriptionOfBusinessDetails">
        <!--Parent Role: Description of business-->
        <link:definition>090100 - Disclosure - Description of business (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails" id="SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090202 - Disclosure - Summary of significant accounting policies, Accounts receivable and credit losses (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" id="SummaryOfSignificantAccountingPoliciesFixedAssetsDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090204 - Disclosure - Summary of significant accounting policies, Fixed 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails" id="SummaryOfSignificantAccountingPoliciesLeasesDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090206 - Disclosure - Summary of significant accounting policies, Leases (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" id="SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090208 - Disclosure - Summary of significant accounting policies, Goodwill and intangible 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" id="SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090210 - Disclosure - Summary of significant accounting policies, Revenue recognition - Disaggregation of 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" id="SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090212 - Disclosure - Summary of significant accounting policies, Revenue recognition - Contract balances (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" id="SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090214 - Disclosure - Summary of significant accounting policies, Revenue recognition - Remaining performance obligations (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault" id="SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault">
        <link:definition>090214 - Disclosure - Summary of significant accounting policies, Revenue recognition - Remaining performance obligations (Details)Default</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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" id="SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090216 - Disclosure - Summary of significant accounting policies, Concentration of credit risk (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" id="SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090218 - Disclosure - Summary of significant accounting policies, Engineering, design and product development (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails" id="SummaryOfSignificantAccountingPoliciesAdvertisingDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090220 - Disclosure - Summary of significant accounting policies, Advertising (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://transact-tech.com/role/InventoriesDetails" id="InventoriesDetails">
        <!--Parent Role: Inventories-->
        <link:definition>090300 - Disclosure - Inventories (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://transact-tech.com/role/FixedAssetsNetDetails" id="FixedAssetsNetDetails">
        <!--Parent Role: Fixed assets, net-->
        <link:definition>090400 - Disclosure - Fixed 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://transact-tech.com/role/IntangibleAssetsNetDetails" id="IntangibleAssetsNetDetails">
        <!--Parent Role: Intangible assets, net-->
        <link:definition>090500 - Disclosure - 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://transact-tech.com/role/AccruedLiabilitiesDetails" id="AccruedLiabilitiesDetails">
        <!--Parent Role: Accrued liabilities-->
        <link:definition>090600 - Disclosure - Accrued 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://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails" id="SegmentReportingOperatingFinancialResultsOfSegmentDetails">
        <!--Parent Role: Segment reporting-->
        <link:definition>090702 - Disclosure - Segment reporting, Operating financial results of segment (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://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails" id="SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails">
        <!--Parent Role: Segment reporting-->
        <link:definition>090704 - Disclosure - Segment reporting, Reconciliation of net (loss) income to EBITDA and adjusted EBITDA (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://transact-tech.com/role/RetirementSavingsPlanDetails" id="RetirementSavingsPlanDetails">
        <!--Parent Role: Retirement savings plan-->
        <link:definition>090800 - Disclosure - Retirement savings plan (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://transact-tech.com/role/BorrowingsDetails" id="BorrowingsDetails">
        <!--Parent Role: Borrowings-->
        <link:definition>090900 - Disclosure - Borrowings (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://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails" id="StockIncentivePlansStockIncentivePlansDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>091000 - Disclosure - Stock incentive plans, Stock incentive plans (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://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" id="StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>091002 - Disclosure - Stock incentive plans, Assumptions used in option valuation calculations (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://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails" id="StockIncentivePlansSharebasedCompensationExpenseDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>091004 - Disclosure - Stock incentive plans, Share-based compensation expense (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://transact-tech.com/role/StockIncentivePlansStockOptionsDetails" id="StockIncentivePlansStockOptionsDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>091006 - Disclosure - Stock incentive plans, Stock options (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://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails" id="IncomeTaxesComponentsOfIncomeTaxExpenseDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091100 - Disclosure - Income taxes, Components of income tax expense (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://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" id="IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091102 - Disclosure - Income taxes, Deferred tax 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://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" id="IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091104 - Disclosure - Income taxes, Valuation allowance on deferred tax 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://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" id="IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091106 - Disclosure - Income taxes, Statutory to effective tax rate reconciliation (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://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails" id="IncomeTaxesUnrecognizedTaxBenefitsDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091108 - Disclosure - Income taxes, Unrecognized tax benefits (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://transact-tech.com/role/EarningsPerShareDetails" id="EarningsPerShareDetails">
        <!--Parent Role: Earnings per share-->
        <link:definition>091200 - Disclosure - Earnings 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://transact-tech.com/role/StockRepurchaseProgramDetails" id="StockRepurchaseProgramDetails">
        <!--Parent Role: Stock repurchase program-->
        <link:definition>091300 - Disclosure - Stock repurchase program (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://transact-tech.com/role/GeographicAreaInformationDetails" id="GeographicAreaInformationDetails">
        <!--Parent Role: Geographic area information-->
        <link:definition>091400 - Disclosure - Geographic area 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://transact-tech.com/role/LeasesDetails" id="LeasesDetails">
        <!--Parent Role: Leases-->
        <link:definition>091500 - Disclosure - Leases (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://transact-tech.com/role/LeasesDetailsCalc2" id="LeasesDetailsCalc2">
        <!--Parent Role: Leases (Details)-->
        <link:definition>091502 - Disclosure - Leases (Details) Calc 2</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://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails" id="QuarterlyResultsOfOperationsUnauditedDetails">
        <!--Parent Role: Quarterly results of operations (unaudited)-->
        <link:definition>091600 - Disclosure - Quarterly results of operations (unaudited) (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://transact-tech.com/role/RelatedPartyTransactionsDetails" id="RelatedPartyTransactionsDetails">
        <!--Parent Role: Related party transactions-->
        <link:definition>091700 - Disclosure - Related party transactions (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
  <xs:import namespace="http://fasb.org/us-gaap/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/dei/2024" schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/country/2024" schemaLocation="https://xbrl.sec.gov/country/2024/country-2024.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/currency/2024" schemaLocation="https://xbrl.sec.gov/currency/2024/currency-2024.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/exch/2024" schemaLocation="https://xbrl.sec.gov/exch/2024/exch-2024.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/naics/2024" schemaLocation="https://xbrl.sec.gov/naics/2024/naics-2024.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/sic/2024" schemaLocation="https://xbrl.sec.gov/sic/2024/sic-2024.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/stpr/2024" schemaLocation="https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd" />
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <xs:import namespace="http://www.xbrl.org/2004/ref" schemaLocation="http://www.xbrl.org/2004/ref-2004-08-10.xsd" />
  <xs:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <xs:import namespace="http://fasb.org/us-types/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/arcrole/fact-explanatoryFact" schemaLocation="http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd" />
  <xs:import namespace="http://fasb.org/srt/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd" />
  <xs:import namespace="http://fasb.org/srt-types/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd" />
  <xs:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/ecd/2024" schemaLocation="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/cyd/2024" schemaLocation="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd" />
  <xs:element name="DescriptionOfBusinessAbstract" id="tact_DescriptionOfBusinessAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="NumberOfSoftwareSolutions" id="tact_NumberOfSoftwareSolutions" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" />
  <xs:element name="FacilityInLasVegasNevadaMember" id="tact_FacilityInLasVegasNevadaMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" id="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
  <xs:element name="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" id="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="InternationalMember" id="tact_InternationalMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="PosAutomationAndBankingMember" id="tact_PosAutomationAndBankingMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="FoodServiceTechnologyMember" id="tact_FoodServiceTechnologyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="TransactServicesGroupMember" id="tact_TransactServicesGroupMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="CasinoAndGamingMember" id="tact_CasinoAndGamingMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" id="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentFinancialCovenantEligibleInventory" id="tact_DebtInstrumentFinancialCovenantEligibleInventory" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="debit" />
  <xs:element name="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" id="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="credit" />
  <xs:element name="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="RevolvingCreditFacilitySienaLendingGroupLlcMember" id="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" id="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="credit" />
  <xs:element name="ComputerSoftwareAndEquipmentMember" id="tact_ComputerSoftwareAndEquipmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="FurnitureAndOfficeEquipmentMember" id="tact_FurnitureAndOfficeEquipmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="FixedAssetsExcludingConstructionInProcessMember" id="tact_FixedAssetsExcludingConstructionInProcessMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="InternationalGameTechnologyPlcMember" id="tact_InternationalGameTechnologyPlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="LightWonderGamingIncMember" id="tact_LightWonderGamingIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ContractWithCustomerRevenueRecognized" id="tact_ContractWithCustomerRevenueRecognized" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
  <xs:element name="ContractWithCustomerAssetLiabilityNet" id="tact_ContractWithCustomerAssetLiabilityNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" id="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="credit" />
  <xs:element name="GeographicAreaInformationTextBlock" id="tact_GeographicAreaInformationTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="PacificRimMember" id="tact_PacificRimMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" id="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" id="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="TaxCreditCarryforwardExpirationPeriod" id="tact_TaxCreditCarryforwardExpirationPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="OperatingLossCarryforwardsNotSubjectToExpiration" id="tact_OperatingLossCarryforwardsNotSubjectToExpiration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="OperatingLossCarryforwardsSubjectToExpiration" id="tact_OperatingLossCarryforwardsSubjectToExpiration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="TaxCreditCarryforwardAmountSubjectToExpiration" id="tact_TaxCreditCarryforwardAmountSubjectToExpiration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" id="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="EquityAwardsWeightedAverageRemainingContractualTermAbstract" id="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="EquityAwardsAggregateIntrinsicValueAbstract" id="tact_EquityAwardsAggregateIntrinsicValueAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="EquityIncentivePlan2014Member" id="tact_EquityIncentivePlan2014Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="RelatedPartyTransactionAbstract" id="tact_RelatedPartyTransactionAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="TheOneGroupHospitalityIncMember" id="tact_TheOneGroupHospitalityIncMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" id="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" id="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="TransactMember" id="tact_TransactMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" id="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" id="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="EarningsBeforeInterestTaxesDepreciationAndAmortization" id="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
  <xs:element name="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" id="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>11
<FILENAME>tact-20241231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 25.3.1.5296 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:arcroleRef arcroleURI="https://xbrl.org/2023/arcrole/summation-item" xlink:type="simple" xlink:href="https://www.xbrl.org/2023/calculation-1.1.xsd#summation-item" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetailsCalc2" xlink:type="simple" xlink:href="tact-20241231.xsd#LeasesDetailsCalc2" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#LeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#EarningsPerShareDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesComponentsOfIncomeTaxExpenseDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReportingOperatingFinancialResultsOfSegmentDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#AccruedLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#FixedAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#InventoriesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfComprehensiveLossIncome" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfOperations" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfOperations" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedBalanceSheets" />
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="OtherAssetsCurrent" xlink:title="calculation: AssetsCurrent to OtherAssetsCurrent" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidTaxes" xlink:label="PrepaidTaxes" xlink:title="PrepaidTaxes" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="PrepaidTaxes" xlink:title="calculation: AssetsCurrent to PrepaidTaxes" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="CashAndCashEquivalentsAtCarryingValue" xlink:title="calculation: AssetsCurrent to CashAndCashEquivalentsAtCarryingValue" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="AccountsReceivableNetCurrent" xlink:title="calculation: AssetsCurrent to AccountsReceivableNetCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="InventoryNet" xlink:title="calculation: AssetsCurrent to InventoryNet" order="4.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="Assets" xlink:to="AssetsCurrent" xlink:title="calculation: Assets to AssetsCurrent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsNoncurrent" xlink:label="AssetsNoncurrent" xlink:title="AssetsNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="OtherAssetsNoncurrent" xlink:title="calculation: AssetsNoncurrent to OtherAssetsNoncurrent" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="calculation: AssetsNoncurrent to DeferredIncomeTaxAssetsNet" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="IntangibleAssetsNetExcludingGoodwill" xlink:title="IntangibleAssetsNetExcludingGoodwill" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="IntangibleAssetsNetExcludingGoodwill" xlink:title="calculation: AssetsNoncurrent to IntangibleAssetsNetExcludingGoodwill" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="Goodwill" xlink:title="Goodwill" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="Goodwill" xlink:title="calculation: AssetsNoncurrent to Goodwill" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="calculation: AssetsNoncurrent to PropertyPlantAndEquipmentNet" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="OperatingLeaseRightOfUseAsset" xlink:title="calculation: AssetsNoncurrent to OperatingLeaseRightOfUseAsset" order="5.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="Assets" xlink:to="AssetsNoncurrent" xlink:title="calculation: Assets to AssetsNoncurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValue" xlink:label="TreasuryStockValue" xlink:title="TreasuryStockValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="TreasuryStockValue" xlink:title="calculation: StockholdersEquity to TreasuryStockValue" order="8.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="CommonStockValue" xlink:title="calculation: StockholdersEquity to CommonStockValue" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="calculation: StockholdersEquity to RetainedEarningsAccumulatedDeficit" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="AdditionalPaidInCapitalCommonStock" xlink:title="AdditionalPaidInCapitalCommonStock" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="AdditionalPaidInCapitalCommonStock" xlink:title="calculation: StockholdersEquity to AdditionalPaidInCapitalCommonStock" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="calculation: StockholdersEquity to AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue" xlink:label="PreferredStockValue" xlink:title="PreferredStockValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="PreferredStockValue" xlink:title="calculation: StockholdersEquity to PreferredStockValue" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="StockholdersEquity" xlink:title="calculation: LiabilitiesAndStockholdersEquity to StockholdersEquity" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="Liabilities" xlink:title="Liabilities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="LiabilitiesNoncurrent" xlink:title="LiabilitiesNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesNoncurrent" xlink:to="OtherLiabilitiesNoncurrent" xlink:title="calculation: LiabilitiesNoncurrent to OtherLiabilitiesNoncurrent" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesNoncurrent" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="calculation: LiabilitiesNoncurrent to ContractWithCustomerLiabilityNoncurrent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesNoncurrent" xlink:to="OperatingLeaseLiabilityNoncurrent" xlink:title="calculation: LiabilitiesNoncurrent to OperatingLeaseLiabilityNoncurrent" order="2.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="Liabilities" xlink:to="LiabilitiesNoncurrent" xlink:title="calculation: Liabilities to LiabilitiesNoncurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="AccountsPayableCurrent" xlink:title="AccountsPayableCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="AccountsPayableCurrent" xlink:title="calculation: LiabilitiesCurrent to AccountsPayableCurrent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="AccruedLiabilitiesCurrent" xlink:title="calculation: LiabilitiesCurrent to AccruedLiabilitiesCurrent" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="calculation: LiabilitiesCurrent to ContractWithCustomerLiabilityCurrent" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="LinesOfCreditCurrent" xlink:title="LinesOfCreditCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="LinesOfCreditCurrent" xlink:title="calculation: LiabilitiesCurrent to LinesOfCreditCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="OperatingLeaseLiabilityCurrent" xlink:title="calculation: LiabilitiesCurrent to OperatingLeaseLiabilityCurrent" order="3.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="Liabilities" xlink:to="LiabilitiesCurrent" xlink:title="calculation: Liabilities to LiabilitiesCurrent" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="Liabilities" xlink:title="calculation: LiabilitiesAndStockholdersEquity to Liabilities" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfOperations">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="InterestIncomeDomesticDeposits" xlink:title="calculation: NonoperatingIncomeExpense to InterestIncomeDomesticDeposits" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="InterestExpenseNonoperating" xlink:title="InterestExpenseNonoperating" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="InterestExpenseNonoperating" xlink:title="calculation: NonoperatingIncomeExpense to InterestExpenseNonoperating" order="5.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="calculation: NonoperatingIncomeExpense to OtherNonoperatingIncomeExpense" order="3.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="NonoperatingIncomeExpense" xlink:title="calculation: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to NonoperatingIncomeExpense" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="calculation: GrossProfit to RevenueFromContractWithCustomerExcludingAssessedTax" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenue" xlink:label="CostOfRevenue" xlink:title="CostOfRevenue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="CostOfRevenue" xlink:title="calculation: GrossProfit to CostOfRevenue" order="2.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="GrossProfit" xlink:title="calculation: OperatingIncomeLoss to GrossProfit" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses" xlink:label="OperatingExpenses" xlink:title="OperatingExpenses" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="GeneralAndAdministrativeExpense" xlink:title="GeneralAndAdministrativeExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="GeneralAndAdministrativeExpense" xlink:title="calculation: OperatingExpenses to GeneralAndAdministrativeExpense" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="ResearchAndDevelopmentExpense" xlink:title="ResearchAndDevelopmentExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="ResearchAndDevelopmentExpense" xlink:title="calculation: OperatingExpenses to ResearchAndDevelopmentExpense" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="SellingAndMarketingExpense" xlink:title="SellingAndMarketingExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="SellingAndMarketingExpense" xlink:title="calculation: OperatingExpenses to SellingAndMarketingExpense" order="2.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="OperatingExpenses" xlink:title="calculation: OperatingIncomeLoss to OperatingExpenses" order="2.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="OperatingIncomeLoss" xlink:title="calculation: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to OperatingIncomeLoss" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="calculation: NetIncomeLoss to IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="IncomeTaxExpenseBenefit" xlink:title="calculation: NetIncomeLoss to IncomeTaxExpenseBenefit" order="2.0" weight="-1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" xlink:title="ComprehensiveIncomeNetOfTax" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="NetIncomeLoss" xlink:title="calculation: ComprehensiveIncomeNetOfTax to NetIncomeLoss" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="calculation: ComprehensiveIncomeNetOfTax to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="2.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to PaymentsRelatedToTaxWithholdingForShareBasedCompensation" order="4.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfLoanCosts" xlink:label="PaymentsOfLoanCosts" xlink:title="PaymentsOfLoanCosts" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="PaymentsOfLoanCosts" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to PaymentsOfLoanCosts" order="9.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="ProceedsFromLinesOfCredit" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to ProceedsFromLinesOfCredit" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInFinancingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInFinancingActivities" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="calculation: NetCashProvidedByUsedInInvestingActivities to PaymentsToAcquirePropertyPlantAndEquipment" order="3.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInInvestingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInInvestingActivities" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:label="ForeignCurrencyTransactionGainLossUnrealized" xlink:title="ForeignCurrencyTransactionGainLossUnrealized" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="ForeignCurrencyTransactionGainLossUnrealized" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to ForeignCurrencyTransactionGainLossUnrealized" order="17.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="ShareBasedCompensation" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to ShareBasedCompensation" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" order="20.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="DepreciationAndAmortization" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to DepreciationAndAmortization" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="NetIncomeLoss" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to NetIncomeLoss" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInInventories" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInInventories" order="12.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInAccountsPayable" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInAccountsPayable" order="15.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="IncreaseDecreaseInOtherOperatingAssets" xlink:title="IncreaseDecreaseInOtherOperatingAssets" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInOtherOperatingAssets" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInOtherOperatingAssets" order="14.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to DeferredIncomeTaxExpenseBenefit" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidTaxes" xlink:label="IncreaseDecreaseInPrepaidTaxes" xlink:title="IncreaseDecreaseInPrepaidTaxes" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInPrepaidTaxes" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInPrepaidTaxes" order="13.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="IncreaseDecreaseInOtherReceivables" xlink:title="IncreaseDecreaseInOtherReceivables" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInOtherReceivables" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInOtherReceivables" order="7.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="IncreaseDecreaseInAccountsReceivable" xlink:title="IncreaseDecreaseInAccountsReceivable" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInAccountsReceivable" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInAccountsReceivable" order="11.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInOperatingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInOperatingActivities" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails">
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ContractWithCustomerAssetLiabilityNet" xlink:label="ContractWithCustomerAssetLiabilityNet" xlink:title="ContractWithCustomerAssetLiabilityNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerLiabilityCurrent" order="4.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerLiabilityNoncurrent" order="5.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="ContractWithCustomerAssetNetCurrent" xlink:title="ContractWithCustomerAssetNetCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerAssetNetCurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerAssetNetCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:label="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" order="3.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetNoncurrent" xlink:label="ContractWithCustomerAssetNetNoncurrent" xlink:title="ContractWithCustomerAssetNetNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerAssetNetNoncurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerAssetNetNoncurrent" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="InventoryFinishedGoodsNetOfReserves" xlink:title="InventoryFinishedGoodsNetOfReserves" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="InventoryNet" xlink:to="InventoryFinishedGoodsNetOfReserves" xlink:title="calculation: InventoryNet to InventoryFinishedGoodsNetOfReserves" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:label="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="InventoryRawMaterialsAndSuppliesNetOfReserves" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="InventoryNet" xlink:to="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="calculation: InventoryNet to InventoryRawMaterialsAndSuppliesNetOfReserves" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="PropertyPlantAndEquipmentGross" xlink:title="calculation: PropertyPlantAndEquipmentNet to PropertyPlantAndEquipmentGross" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="calculation: PropertyPlantAndEquipmentNet to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="1.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConstructionInProgressGross" xlink:label="ConstructionInProgressGross" xlink:title="ConstructionInProgressGross" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="ConstructionInProgressGross" xlink:title="calculation: PropertyPlantAndEquipmentNet to ConstructionInProgressGross" order="2.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="OtherLiabilitiesCurrent" xlink:title="OtherLiabilitiesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="OtherLiabilitiesCurrent" xlink:title="calculation: AccruedLiabilitiesCurrent to OtherLiabilitiesCurrent" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="AccruedProfessionalFeesCurrent" xlink:title="AccruedProfessionalFeesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="AccruedProfessionalFeesCurrent" xlink:title="calculation: AccruedLiabilitiesCurrent to AccruedProfessionalFeesCurrent" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="TaxesPayableCurrent" xlink:title="calculation: AccruedLiabilitiesCurrent to TaxesPayableCurrent" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="EmployeeRelatedLiabilitiesCurrent" xlink:title="EmployeeRelatedLiabilitiesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="EmployeeRelatedLiabilitiesCurrent" xlink:title="calculation: AccruedLiabilitiesCurrent to EmployeeRelatedLiabilitiesCurrent" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MarketingExpense" xlink:label="MarketingExpense" xlink:title="MarketingExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="MarketingExpense" xlink:title="calculation: OperatingIncomeLoss to MarketingExpense" order="5.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="SegmentReportingOtherItemAmount" xlink:title="SegmentReportingOtherItemAmount" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="SegmentReportingOtherItemAmount" xlink:title="calculation: OperatingIncomeLoss to SegmentReportingOtherItemAmount" order="9.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="DepreciationAndAmortization" xlink:title="calculation: OperatingIncomeLoss to DepreciationAndAmortization" order="8.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:label="CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:title="CompensationExpenseExcludingCostOfGoodAndServiceSold" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:title="calculation: OperatingIncomeLoss to CompensationExpenseExcludingCostOfGoodAndServiceSold" order="2.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfessionalAndContractServicesExpense" xlink:label="ProfessionalAndContractServicesExpense" xlink:title="ProfessionalAndContractServicesExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="ProfessionalAndContractServicesExpense" xlink:title="calculation: OperatingIncomeLoss to ProfessionalAndContractServicesExpense" order="3.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostDirectMaterial" xlink:label="CostDirectMaterial" xlink:title="CostDirectMaterial" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="CostDirectMaterial" xlink:title="calculation: OperatingIncomeLoss to CostDirectMaterial" order="1.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InformationTechnologyAndDataProcessing" xlink:label="InformationTechnologyAndDataProcessing" xlink:title="InformationTechnologyAndDataProcessing" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="InformationTechnologyAndDataProcessing" xlink:title="calculation: OperatingIncomeLoss to InformationTechnologyAndDataProcessing" order="6.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeveranceCosts1" xlink:label="SeveranceCosts1" xlink:title="SeveranceCosts1" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="SeveranceCosts1" xlink:title="calculation: OperatingIncomeLoss to SeveranceCosts1" order="7.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="calculation: OperatingIncomeLoss to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OccupancyNet" xlink:label="OccupancyNet" xlink:title="OccupancyNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="OccupancyNet" xlink:title="calculation: OperatingIncomeLoss to OccupancyNet" order="4.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="OperatingIncomeLoss" xlink:title="calculation: NetIncomeLoss to OperatingIncomeLoss" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="InterestExpenseNonoperating" xlink:title="InterestExpenseNonoperating" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="InterestExpenseNonoperating" xlink:title="calculation: NetIncomeLoss to InterestExpenseNonoperating" order="2.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="InterestIncomeDomesticDeposits" xlink:title="calculation: NetIncomeLoss to InterestIncomeDomesticDeposits" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="calculation: NetIncomeLoss to OtherNonoperatingIncomeExpense" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="IncomeTaxExpenseBenefit" xlink:title="calculation: NetIncomeLoss to IncomeTaxExpenseBenefit" order="4.0" weight="-1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="calculation: DeferredIncomeTaxExpenseBenefit to DeferredStateAndLocalIncomeTaxExpenseBenefit" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="DeferredFederalIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="calculation: DeferredIncomeTaxExpenseBenefit to DeferredFederalIncomeTaxExpenseBenefit" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="DeferredForeignIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="calculation: DeferredIncomeTaxExpenseBenefit to DeferredForeignIncomeTaxExpenseBenefit" order="2.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="IncomeTaxExpenseBenefit" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="calculation: IncomeTaxExpenseBenefit to DeferredIncomeTaxExpenseBenefit" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="CurrentIncomeTaxExpenseBenefit" xlink:title="CurrentIncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="CurrentFederalTaxExpenseBenefit" xlink:title="CurrentFederalTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="CurrentFederalTaxExpenseBenefit" xlink:title="calculation: CurrentIncomeTaxExpenseBenefit to CurrentFederalTaxExpenseBenefit" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="CurrentForeignTaxExpenseBenefit" xlink:title="CurrentForeignTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="CurrentForeignTaxExpenseBenefit" xlink:title="calculation: CurrentIncomeTaxExpenseBenefit to CurrentForeignTaxExpenseBenefit" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="CurrentStateAndLocalTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="calculation: CurrentIncomeTaxExpenseBenefit to CurrentStateAndLocalTaxExpenseBenefit" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="IncomeTaxExpenseBenefit" xlink:to="CurrentIncomeTaxExpenseBenefit" xlink:title="calculation: IncomeTaxExpenseBenefit to CurrentIncomeTaxExpenseBenefit" order="0.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="DeferredTaxAssetsLiabilitiesNet" xlink:title="DeferredTaxAssetsLiabilitiesNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="DeferredTaxLiabilities" xlink:title="DeferredTaxLiabilities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="DeferredTaxLiabilitiesOther" xlink:title="DeferredTaxLiabilitiesOther" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxLiabilities" xlink:to="DeferredTaxLiabilitiesOther" xlink:title="calculation: DeferredTaxLiabilities to DeferredTaxLiabilitiesOther" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxLiabilities" xlink:to="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="calculation: DeferredTaxLiabilities to DeferredTaxLiabilitiesPropertyPlantAndEquipment" order="0.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsLiabilitiesNet" xlink:to="DeferredTaxLiabilities" xlink:title="calculation: DeferredTaxAssetsLiabilitiesNet to DeferredTaxLiabilities" order="1.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="DeferredTaxAssetsNet" xlink:title="DeferredTaxAssetsNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="DeferredTaxAssetsGross" xlink:title="DeferredTaxAssetsGross" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="DeferredTaxAssetsInventory" xlink:title="DeferredTaxAssetsInventory" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsInventory" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsInventory" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" order="9.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="DeferredTaxAssetsTaxCreditCarryforwardsResearch" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxCreditCarryforwardsResearch" order="10.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="DeferredTaxAssetsDeferredIncome" xlink:title="DeferredTaxAssetsDeferredIncome" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsDeferredIncome" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsDeferredIncome" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsForeign" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsOperatingLossCarryforwardsForeign" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:label="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="DeferredTaxAssetsInProcessResearchAndDevelopment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsInProcessResearchAndDevelopment" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsOperatingLossCarryforwardsDomestic" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="DeferredTaxAssetsOther" xlink:title="DeferredTaxAssetsOther" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsOther" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsOther" order="11.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsNet" xlink:to="DeferredTaxAssetsGross" xlink:title="calculation: DeferredTaxAssetsNet to DeferredTaxAssetsGross" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="DeferredTaxAssetsValuationAllowance" xlink:title="DeferredTaxAssetsValuationAllowance" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsNet" xlink:to="DeferredTaxAssetsValuationAllowance" xlink:title="calculation: DeferredTaxAssetsNet to DeferredTaxAssetsValuationAllowance" order="1.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="DeferredTaxAssetsLiabilitiesNet" xlink:to="DeferredTaxAssetsNet" xlink:title="calculation: DeferredTaxAssetsLiabilitiesNet to DeferredTaxAssetsNet" order="0.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:label="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" order="2.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:label="EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:title="EffectiveIncomeTaxRateReconciliationFdiiPercent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationFdiiPercent" order="3.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" order="10.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:label="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="EffectiveIncomeTaxRateReconciliationTaxContingencies" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationTaxContingencies" order="9.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="EffectiveIncomeTaxRateReconciliationOtherAdjustments" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationOtherAdjustments" order="12.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:label="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:title="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" order="11.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="calculation: WeightedAverageNumberOfDilutedSharesOutstanding to IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="calculation: WeightedAverageNumberOfDilutedSharesOutstanding to WeightedAverageNumberOfSharesOutstandingBasic" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetailsCalc2">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="OperatingLeaseLiability" xlink:title="OperatingLeaseLiability" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="OperatingLeaseLiability" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to OperatingLeaseLiability" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="0.0" weight="1.0" />
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>12
<FILENAME>tact-20241231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 25.3.1.5296 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:t1="http://xbrl.org/2005/xbrldt">
  <link:roleRef roleURI="http://transact-tech.com/role/RelatedPartyTransactionsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#RelatedPartyTransactionsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#QuarterlyResultsOfOperationsUnauditedDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetailsCalc2" xlink:type="simple" xlink:href="tact-20241231.xsd#LeasesDetailsCalc2" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#LeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformationDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#GeographicAreaInformationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockRepurchaseProgramDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockRepurchaseProgramDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#EarningsPerShareDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesUnrecognizedTaxBenefitsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesComponentsOfIncomeTaxExpenseDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansStockOptionsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansSharebasedCompensationExpenseDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansStockIncentivePlansDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/BorrowingsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#BorrowingsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/RetirementSavingsPlanDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#RetirementSavingsPlanDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReportingOperatingFinancialResultsOfSegmentDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#AccruedLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNetDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IntangibleAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#FixedAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#InventoriesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesLeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/DescriptionOfBusinessDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#DescriptionOfBusinessDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables" xlink:type="simple" xlink:href="tact-20241231.xsd#QuarterlyResultsOfOperationsUnauditedTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#LeasesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformationTables" xlink:type="simple" xlink:href="tact-20241231.xsd#GeographicAreaInformationTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareTables" xlink:type="simple" xlink:href="tact-20241231.xsd#EarningsPerShareTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansTables" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReportingTables" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReportingTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#AccruedLiabilitiesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNetTables" xlink:type="simple" xlink:href="tact-20241231.xsd#IntangibleAssetsNetTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetTables" xlink:type="simple" xlink:href="tact-20241231.xsd#FixedAssetsNetTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#InventoriesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" />
  <link:roleRef roleURI="http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure" xlink:type="simple" xlink:href="tact-20241231.xsd#CybersecurityRiskManagementAndStrategyDisclosure" />
  <link:roleRef roleURI="http://transact-tech.com/role/SubsequentEvents" xlink:type="simple" xlink:href="tact-20241231.xsd#SubsequentEvents" />
  <link:roleRef roleURI="http://transact-tech.com/role/RelatedPartyTransactions" xlink:type="simple" xlink:href="tact-20241231.xsd#RelatedPartyTransactions" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited" xlink:type="simple" xlink:href="tact-20241231.xsd#QuarterlyResultsOfOperationsUnaudited" />
  <link:roleRef roleURI="http://transact-tech.com/role/Leases" xlink:type="simple" xlink:href="tact-20241231.xsd#Leases" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformation" xlink:type="simple" xlink:href="tact-20241231.xsd#GeographicAreaInformation" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockRepurchaseProgram" xlink:type="simple" xlink:href="tact-20241231.xsd#StockRepurchaseProgram" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShare" xlink:type="simple" xlink:href="tact-20241231.xsd#EarningsPerShare" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxes" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxes" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlans" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlans" />
  <link:roleRef roleURI="http://transact-tech.com/role/Borrowings" xlink:type="simple" xlink:href="tact-20241231.xsd#Borrowings" />
  <link:roleRef roleURI="http://transact-tech.com/role/RetirementSavingsPlan" xlink:type="simple" xlink:href="tact-20241231.xsd#RetirementSavingsPlan" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReporting" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReporting" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilities" xlink:type="simple" xlink:href="tact-20241231.xsd#AccruedLiabilities" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNet" xlink:type="simple" xlink:href="tact-20241231.xsd#IntangibleAssetsNet" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNet" xlink:type="simple" xlink:href="tact-20241231.xsd#FixedAssetsNet" />
  <link:roleRef roleURI="http://transact-tech.com/role/Inventories" xlink:type="simple" xlink:href="tact-20241231.xsd#Inventories" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPolicies" />
  <link:roleRef roleURI="http://transact-tech.com/role/DescriptionOfBusiness" xlink:type="simple" xlink:href="tact-20241231.xsd#DescriptionOfBusiness" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfChangesInShareholdersEquity" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfComprehensiveLossIncome" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfOperations" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfOperations" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedBalanceSheetsParenthetical" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedBalanceSheets" />
  <link:roleRef roleURI="http://transact-tech.com/role/DocumentAndEntityInformation" xlink:type="simple" xlink:href="tact-20241231.xsd#DocumentAndEntityInformation" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DocumentAndEntityInformation" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsAbstract" xlink:title="definition: StatementLineItems to AssetsAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="definition: StatementLineItems to LiabilitiesAndStockholdersEquityAbstract" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="LiabilitiesCurrentAbstract" xlink:title="LiabilitiesCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesCurrentAbstract" xlink:title="definition: StatementLineItems to LiabilitiesCurrentAbstract" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="definition: StatementLineItems to ContractWithCustomerLiabilityNoncurrent" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OperatingLeaseLiabilityNoncurrent" xlink:title="definition: StatementLineItems to OperatingLeaseLiabilityNoncurrent" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherLiabilitiesNoncurrent" xlink:title="definition: StatementLineItems to OtherLiabilitiesNoncurrent" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="LiabilitiesNoncurrent" xlink:title="LiabilitiesNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesNoncurrent" xlink:title="definition: StatementLineItems to LiabilitiesNoncurrent" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="Liabilities" xlink:title="Liabilities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="Liabilities" xlink:title="definition: StatementLineItems to Liabilities" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="CommitmentsAndContingencies" xlink:title="CommitmentsAndContingencies" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommitmentsAndContingencies" xlink:title="definition: StatementLineItems to CommitmentsAndContingencies" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquityAbstract" xlink:title="definition: StatementLineItems to StockholdersEquityAbstract" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquity" xlink:title="definition: StatementLineItems to LiabilitiesAndStockholdersEquity" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue" xlink:label="PreferredStockValue" xlink:title="PreferredStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockValue" xlink:title="definition: StatementLineItems to PreferredStockValue" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockValue" xlink:title="definition: StatementLineItems to CommonStockValue" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="AdditionalPaidInCapitalCommonStock" xlink:title="AdditionalPaidInCapitalCommonStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AdditionalPaidInCapitalCommonStock" xlink:title="definition: StatementLineItems to AdditionalPaidInCapitalCommonStock" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="definition: StatementLineItems to RetainedEarningsAccumulatedDeficit" order="15.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="definition: StatementLineItems to AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="16.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValue" xlink:label="TreasuryStockValue" xlink:title="TreasuryStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="TreasuryStockValue" xlink:title="definition: StatementLineItems to TreasuryStockValue" order="17.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquity" xlink:title="definition: StatementLineItems to StockholdersEquity" order="18.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="LinesOfCreditCurrent" xlink:title="LinesOfCreditCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LinesOfCreditCurrent" xlink:title="definition: StatementLineItems to LinesOfCreditCurrent" order="19.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="AccountsPayableCurrent" xlink:title="AccountsPayableCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccountsPayableCurrent" xlink:title="definition: StatementLineItems to AccountsPayableCurrent" order="20.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccruedLiabilitiesCurrent" xlink:title="definition: StatementLineItems to AccruedLiabilitiesCurrent" order="21.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OperatingLeaseLiabilityCurrent" xlink:title="definition: StatementLineItems to OperatingLeaseLiabilityCurrent" order="22.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="definition: StatementLineItems to ContractWithCustomerLiabilityCurrent" order="23.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesCurrent" xlink:title="definition: StatementLineItems to LiabilitiesCurrent" order="24.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsCurrentAbstract" xlink:title="definition: StatementLineItems to AssetsCurrentAbstract" order="25.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="definition: StatementLineItems to PropertyPlantAndEquipmentNet" order="26.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OperatingLeaseRightOfUseAsset" xlink:title="definition: StatementLineItems to OperatingLeaseRightOfUseAsset" order="27.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="Goodwill" xlink:title="Goodwill" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="Goodwill" xlink:title="definition: StatementLineItems to Goodwill" order="28.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="definition: StatementLineItems to DeferredIncomeTaxAssetsNet" order="29.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="IntangibleAssetsNetExcludingGoodwill" xlink:title="IntangibleAssetsNetExcludingGoodwill" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="IntangibleAssetsNetExcludingGoodwill" xlink:title="definition: StatementLineItems to IntangibleAssetsNetExcludingGoodwill" order="30.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherAssetsNoncurrent" xlink:title="definition: StatementLineItems to OtherAssetsNoncurrent" order="31.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsNoncurrent" xlink:label="AssetsNoncurrent" xlink:title="AssetsNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsNoncurrent" xlink:title="definition: StatementLineItems to AssetsNoncurrent" order="32.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="Assets" xlink:title="definition: StatementLineItems to Assets" order="33.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CashAndCashEquivalentsAtCarryingValue" xlink:title="definition: StatementLineItems to CashAndCashEquivalentsAtCarryingValue" order="34.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccountsReceivableNetCurrent" xlink:title="definition: StatementLineItems to AccountsReceivableNetCurrent" order="35.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="InventoryNet" xlink:title="definition: StatementLineItems to InventoryNet" order="36.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidTaxes" xlink:label="PrepaidTaxes" xlink:title="PrepaidTaxes" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PrepaidTaxes" xlink:title="definition: StatementLineItems to PrepaidTaxes" order="37.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherAssetsCurrent" xlink:title="definition: StatementLineItems to OtherAssetsCurrent" order="38.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsCurrent" xlink:title="definition: StatementLineItems to AssetsCurrent" order="39.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="StatementLineItems" xlink:to="StatementTable" xlink:title="definition: StatementLineItems to StatementTable" order="40.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="StatementTable" xlink:to="StatementClassOfStockAxis" xlink:title="definition: StatementTable to StatementClassOfStockAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain_2" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain_2" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ClassOfStockDomain" xlink:to="SeriesAPreferredStockMember" xlink:title="definition: ClassOfStockDomain to SeriesAPreferredStockMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsAbstract" xlink:title="definition: StatementLineItems to AssetsAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="definition: StatementLineItems to LiabilitiesAndStockholdersEquityAbstract" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquityAbstract" xlink:title="definition: StatementLineItems to StockholdersEquityAbstract" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="PreferredStockParOrStatedValuePerShare" xlink:title="PreferredStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockParOrStatedValuePerShare" xlink:title="definition: StatementLineItems to PreferredStockParOrStatedValuePerShare" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="PreferredStockSharesAuthorized" xlink:title="PreferredStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockSharesAuthorized" xlink:title="definition: StatementLineItems to PreferredStockSharesAuthorized" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="PreferredStockSharesIssued" xlink:title="PreferredStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockSharesIssued" xlink:title="definition: StatementLineItems to PreferredStockSharesIssued" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="PreferredStockSharesOutstanding" xlink:title="PreferredStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockSharesOutstanding" xlink:title="definition: StatementLineItems to PreferredStockSharesOutstanding" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="CommonStockParOrStatedValuePerShare" xlink:title="CommonStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockParOrStatedValuePerShare" xlink:title="definition: StatementLineItems to CommonStockParOrStatedValuePerShare" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="CommonStockSharesAuthorized" xlink:title="CommonStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockSharesAuthorized" xlink:title="definition: StatementLineItems to CommonStockSharesAuthorized" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockSharesIssued" xlink:title="definition: StatementLineItems to CommonStockSharesIssued" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="CommonStockSharesOutstanding" xlink:title="CommonStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockSharesOutstanding" xlink:title="definition: StatementLineItems to CommonStockSharesOutstanding" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="TreasuryStockCommonShares" xlink:title="TreasuryStockCommonShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="TreasuryStockCommonShares" xlink:title="definition: StatementLineItems to TreasuryStockCommonShares" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsCurrentAbstract" xlink:title="definition: StatementLineItems to AssetsCurrentAbstract" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="definition: StatementLineItems to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="definition: StatementLineItems to FiniteLivedIntangibleAssetsAccumulatedAmortization" order="15.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="definition: StatementLineItems to AllowanceForDoubtfulAccountsReceivableCurrent" order="16.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="StatementLineItems" xlink:to="StatementTable" xlink:title="definition: StatementLineItems to StatementTable" order="17.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="StatementTable" xlink:to="StatementClassOfStockAxis" xlink:title="definition: StatementTable to StatementClassOfStockAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain_2" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain_2" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ClassOfStockDomain" xlink:to="SeriesAPreferredStockMember" xlink:title="definition: ClassOfStockDomain to SeriesAPreferredStockMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfOperations" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="definition: StatementLineItems to IncreaseDecreaseInStockholdersEquityRollForward" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquity" xlink:title="definition: StatementLineItems to StockholdersEquity" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockSharesIssued" xlink:title="definition: StatementLineItems to CommonStockSharesIssued" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodValueStockOptionsExercised" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodSharesStockOptionsExercised" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:label="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="definition: StatementLineItems to StockGrantedDuringPeriodValueSharebasedCompensationForfeited" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="definition: StatementLineItems to SharesPaidForTaxWithholdingForShareBasedCompensation" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="definition: StatementLineItems to AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="definition: StatementLineItems to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: StatementLineItems to NetIncomeLoss" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="StatementLineItems" xlink:to="StatementTable" xlink:title="definition: StatementLineItems to StatementTable" order="13.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="StatementTable" xlink:to="StatementEquityComponentsAxis" xlink:title="definition: StatementTable to StatementEquityComponentsAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain_2" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain_2" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="CommonStockMember" xlink:title="definition: EquityComponentDomain to CommonStockMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="AdditionalPaidInCapitalMember" xlink:title="definition: EquityComponentDomain to AdditionalPaidInCapitalMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="RetainedEarningsMember" xlink:title="definition: EquityComponentDomain to RetainedEarningsMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="TreasuryStockCommonMember" xlink:title="TreasuryStockCommonMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="TreasuryStockCommonMember" xlink:title="definition: EquityComponentDomain to TreasuryStockCommonMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="AccumulatedOtherComprehensiveIncomeMember" xlink:title="definition: EquityComponentDomain to AccumulatedOtherComprehensiveIncomeMember" order="5.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DescriptionOfBusiness" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Inventories" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNet" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNet" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilities" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReporting" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RetirementSavingsPlan" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Borrowings" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlans" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxes" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShare" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockRepurchaseProgram" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformation" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Leases" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RelatedPartyTransactions" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SubsequentEvents" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNetTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReportingTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformationTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DescriptionOfBusinessDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentAbstract" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentUsefulLife" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentUsefulLife" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation" xlink:label="Depreciation" xlink:title="Depreciation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="Depreciation" xlink:title="definition: PropertyPlantAndEquipmentLineItems to Depreciation" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="definition: PropertyPlantAndEquipmentLineItems to ScheduleOfPropertyPlantAndEquipmentTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="definition: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ToolsDiesAndMoldsMember" xlink:label="ToolsDiesAndMoldsMember" xlink:title="ToolsDiesAndMoldsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ToolsDiesAndMoldsMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to ToolsDiesAndMoldsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="MachineryAndEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to MachineryAndEquipmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FurnitureAndOfficeEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FurnitureAndOfficeEquipmentMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ComputerSoftwareAndEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to ComputerSoftwareAndEquipmentMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="RangeAxis" xlink:title="definition: ScheduleOfPropertyPlantAndEquipmentTable to RangeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="LesseeLeaseDescriptionLineItems" xlink:title="LesseeLeaseDescriptionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="AssetsAndLiabilitiesLesseeAbstract" xlink:title="AssetsAndLiabilitiesLesseeAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="AssetsAndLiabilitiesLesseeAbstract" xlink:title="definition: LesseeLeaseDescriptionLineItems to AssetsAndLiabilitiesLesseeAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:label="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="definition: LesseeLeaseDescriptionLineItems to IncreaseDecreaseInOperatingLeaseRightOfUseAsset" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="definition: LesseeLeaseDescriptionLineItems to IncreaseDecreaseInOperatingLeaseLiability" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="LesseeOperatingLeaseRemainingLeaseTerm" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="definition: LesseeLeaseDescriptionLineItems to LesseeOperatingLeaseRemainingLeaseTerm" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="LesseeLeaseDescriptionTable" xlink:title="LesseeLeaseDescriptionTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="LesseeLeaseDescriptionTable" xlink:title="definition: LesseeLeaseDescriptionLineItems to LesseeLeaseDescriptionTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="LesseeLeaseDescriptionTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="definition: LesseeLeaseDescriptionTable to PropertyPlantAndEquipmentByTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FacilityInLasVegasNevadaMember" xlink:label="FacilityInLasVegasNevadaMember" xlink:title="FacilityInLasVegasNevadaMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FacilityInLasVegasNevadaMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FacilityInLasVegasNevadaMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="LesseeLeaseDescriptionTable" xlink:to="RangeAxis" xlink:title="definition: LesseeLeaseDescriptionTable to RangeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueAbstract" xlink:title="definition: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="definition: DisaggregationOfRevenueLineItems to RevenueFromContractWithCustomerExcludingAssessedTax" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueTable" xlink:title="definition: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueTable" order="3.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="ProductOrServiceAxis" xlink:title="ProductOrServiceAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="ProductOrServiceAxis" xlink:title="definition: DisaggregationOfRevenueTable to ProductOrServiceAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain" xlink:title="ProductsAndServicesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ProductOrServiceAxis" xlink:to="ProductsAndServicesDomain" xlink:title="definition: ProductOrServiceAxis to ProductsAndServicesDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain_2" xlink:title="ProductsAndServicesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ProductOrServiceAxis" xlink:to="ProductsAndServicesDomain_2" xlink:title="definition: ProductOrServiceAxis to ProductsAndServicesDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FoodServiceTechnologyMember" xlink:label="FoodServiceTechnologyMember" xlink:title="FoodServiceTechnologyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="FoodServiceTechnologyMember" xlink:title="definition: ProductsAndServicesDomain to FoodServiceTechnologyMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_PosAutomationAndBankingMember" xlink:label="PosAutomationAndBankingMember" xlink:title="PosAutomationAndBankingMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="PosAutomationAndBankingMember" xlink:title="definition: ProductsAndServicesDomain to PosAutomationAndBankingMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_CasinoAndGamingMember" xlink:label="CasinoAndGamingMember" xlink:title="CasinoAndGamingMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="CasinoAndGamingMember" xlink:title="definition: ProductsAndServicesDomain to CasinoAndGamingMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TransactServicesGroupMember" xlink:label="TransactServicesGroupMember" xlink:title="TransactServicesGroupMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="TransactServicesGroupMember" xlink:title="definition: ProductsAndServicesDomain to TransactServicesGroupMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="StatementGeographicalAxis" xlink:title="definition: DisaggregationOfRevenueTable to StatementGeographicalAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain_2" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain_2" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="definition: SegmentGeographicalDomain to US" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="InternationalMember" xlink:title="definition: SegmentGeographicalDomain to InternationalMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuePerformanceObligationAbstract" xlink:label="RevenuePerformanceObligationAbstract" xlink:title="RevenuePerformanceObligationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenuePerformanceObligationAbstract" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenuePerformanceObligationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="RevenueRemainingPerformanceObligation" xlink:title="RevenueRemainingPerformanceObligation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligation" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligation" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuePerformanceObligationAbstract" xlink:label="RevenuePerformanceObligationAbstract" xlink:title="RevenuePerformanceObligationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenuePerformanceObligationAbstract" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenuePerformanceObligationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="RevenueRemainingPerformanceObligation" xlink:title="RevenueRemainingPerformanceObligation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligation" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligation" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="ConcentrationRiskLineItems" xlink:title="ConcentrationRiskLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="RisksAndUncertaintiesAbstract" xlink:title="RisksAndUncertaintiesAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskLineItems" xlink:to="RisksAndUncertaintiesAbstract" xlink:title="definition: ConcentrationRiskLineItems to RisksAndUncertaintiesAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskLineItems" xlink:to="ConcentrationRiskPercentage1" xlink:title="definition: ConcentrationRiskLineItems to ConcentrationRiskPercentage1" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable" xlink:label="ConcentrationRiskTable" xlink:title="ConcentrationRiskTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ConcentrationRiskLineItems" xlink:to="ConcentrationRiskTable" xlink:title="definition: ConcentrationRiskLineItems to ConcentrationRiskTable" order="3.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ConcentrationRiskTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="definition: ConcentrationRiskTable to ConcentrationRiskByBenchmarkAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain_2" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain_2" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember" xlink:label="AccountsReceivableMember" xlink:title="AccountsReceivableMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="AccountsReceivableMember" xlink:title="definition: ConcentrationRiskBenchmarkDomain to AccountsReceivableMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="definition: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ConcentrationRiskTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="definition: ConcentrationRiskTable to ConcentrationRiskByTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain_2" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain_2" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="CustomerConcentrationRiskMember" xlink:title="CustomerConcentrationRiskMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskTypeDomain" xlink:to="CustomerConcentrationRiskMember" xlink:title="definition: ConcentrationRiskTypeDomain to CustomerConcentrationRiskMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="MajorCustomersAxis" xlink:title="MajorCustomersAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ConcentrationRiskTable" xlink:to="MajorCustomersAxis" xlink:title="definition: ConcentrationRiskTable to MajorCustomersAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="NameOfMajorCustomerDomain" xlink:title="NameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="MajorCustomersAxis" xlink:to="NameOfMajorCustomerDomain" xlink:title="definition: MajorCustomersAxis to NameOfMajorCustomerDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="NameOfMajorCustomerDomain_2" xlink:title="NameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="MajorCustomersAxis" xlink:to="NameOfMajorCustomerDomain_2" xlink:title="definition: MajorCustomersAxis to NameOfMajorCustomerDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_LightWonderGamingIncMember" xlink:label="LightWonderGamingIncMember" xlink:title="LightWonderGamingIncMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NameOfMajorCustomerDomain" xlink:to="LightWonderGamingIncMember" xlink:title="definition: NameOfMajorCustomerDomain to LightWonderGamingIncMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_InternationalGameTechnologyPlcMember" xlink:label="InternationalGameTechnologyPlcMember" xlink:title="InternationalGameTechnologyPlcMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NameOfMajorCustomerDomain" xlink:to="InternationalGameTechnologyPlcMember" xlink:title="definition: NameOfMajorCustomerDomain to InternationalGameTechnologyPlcMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:label="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="PropertyPlantAndEquipmentNetByTypeAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentNetByTypeAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentGross" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentGross" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="definition: PropertyPlantAndEquipmentLineItems to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConstructionInProgressGross" xlink:label="ConstructionInProgressGross" xlink:title="ConstructionInProgressGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="ConstructionInProgressGross" xlink:title="definition: PropertyPlantAndEquipmentLineItems to ConstructionInProgressGross" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentNet" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="definition: PropertyPlantAndEquipmentLineItems to ScheduleOfPropertyPlantAndEquipmentTable" order="6.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="definition: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FixedAssetsExcludingConstructionInProcessMember" xlink:label="FixedAssetsExcludingConstructionInProcessMember" xlink:title="FixedAssetsExcludingConstructionInProcessMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FixedAssetsExcludingConstructionInProcessMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FixedAssetsExcludingConstructionInProcessMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="MachineryAndEquipmentMember" xlink:title="definition: FixedAssetsExcludingConstructionInProcessMember to MachineryAndEquipmentMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="FurnitureAndOfficeEquipmentMember" xlink:title="definition: FixedAssetsExcludingConstructionInProcessMember to FurnitureAndOfficeEquipmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="ComputerSoftwareAndEquipmentMember" xlink:title="definition: FixedAssetsExcludingConstructionInProcessMember to ComputerSoftwareAndEquipmentMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="LeaseholdImprovementsMember" xlink:title="LeaseholdImprovementsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="LeaseholdImprovementsMember" xlink:title="definition: FixedAssetsExcludingConstructionInProcessMember to LeaseholdImprovementsMember" order="4.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsNetAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="AmortizationOfIntangibleAssets" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to AmortizationOfIntangibleAssets" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="FiniteLivedIntangibleAssetsGross" xlink:title="FiniteLivedIntangibleAssetsGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsGross" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsGross" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAccumulatedAmortization" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to ScheduleOfFiniteLivedIntangibleAssetsTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="definition: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsByMajorClassAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="definition: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain_2" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain_2" xlink:title="definition: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="TechnologyBasedIntangibleAssetsMember" xlink:title="TechnologyBasedIntangibleAssetsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="TechnologyBasedIntangibleAssetsMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to TechnologyBasedIntangibleAssetsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PatentsMember" xlink:label="PatentsMember" xlink:title="PatentsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="PatentsMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to PatentsMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="SegmentReportingInformationLineItems" xlink:title="SegmentReportingInformationLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationProfitLossAbstract" xlink:label="SegmentReportingInformationProfitLossAbstract" xlink:title="SegmentReportingInformationProfitLossAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="SegmentReportingInformationProfitLossAbstract" xlink:title="definition: SegmentReportingInformationLineItems to SegmentReportingInformationProfitLossAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="definition: SegmentReportingInformationLineItems to RevenueFromContractWithCustomerExcludingAssessedTax" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostDirectMaterial" xlink:label="CostDirectMaterial" xlink:title="CostDirectMaterial" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="CostDirectMaterial" xlink:title="definition: SegmentReportingInformationLineItems to CostDirectMaterial" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:label="CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:title="CompensationExpenseExcludingCostOfGoodAndServiceSold" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:title="definition: SegmentReportingInformationLineItems to CompensationExpenseExcludingCostOfGoodAndServiceSold" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfessionalAndContractServicesExpense" xlink:label="ProfessionalAndContractServicesExpense" xlink:title="ProfessionalAndContractServicesExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="ProfessionalAndContractServicesExpense" xlink:title="definition: SegmentReportingInformationLineItems to ProfessionalAndContractServicesExpense" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OccupancyNet" xlink:label="OccupancyNet" xlink:title="OccupancyNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="OccupancyNet" xlink:title="definition: SegmentReportingInformationLineItems to OccupancyNet" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MarketingExpense" xlink:label="MarketingExpense" xlink:title="MarketingExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="MarketingExpense" xlink:title="definition: SegmentReportingInformationLineItems to MarketingExpense" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InformationTechnologyAndDataProcessing" xlink:label="InformationTechnologyAndDataProcessing" xlink:title="InformationTechnologyAndDataProcessing" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="InformationTechnologyAndDataProcessing" xlink:title="definition: SegmentReportingInformationLineItems to InformationTechnologyAndDataProcessing" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeveranceCosts1" xlink:label="SeveranceCosts1" xlink:title="SeveranceCosts1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="SeveranceCosts1" xlink:title="definition: SegmentReportingInformationLineItems to SeveranceCosts1" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="DepreciationAndAmortization" xlink:title="definition: SegmentReportingInformationLineItems to DepreciationAndAmortization" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="SegmentReportingOtherItemAmount" xlink:title="SegmentReportingOtherItemAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="SegmentReportingOtherItemAmount" xlink:title="definition: SegmentReportingInformationLineItems to SegmentReportingOtherItemAmount" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="OperatingIncomeLoss" xlink:title="definition: SegmentReportingInformationLineItems to OperatingIncomeLoss" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="InterestIncomeDomesticDeposits" xlink:title="definition: SegmentReportingInformationLineItems to InterestIncomeDomesticDeposits" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="InterestExpenseNonoperating" xlink:title="InterestExpenseNonoperating" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="InterestExpenseNonoperating" xlink:title="definition: SegmentReportingInformationLineItems to InterestExpenseNonoperating" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="definition: SegmentReportingInformationLineItems to OtherNonoperatingIncomeExpense" order="15.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="IncomeTaxExpenseBenefit" xlink:title="definition: SegmentReportingInformationLineItems to IncomeTaxExpenseBenefit" order="16.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: SegmentReportingInformationLineItems to NetIncomeLoss" order="17.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingOtherItemCompositionDescription" xlink:label="SegmentReportingOtherItemCompositionDescription" xlink:title="SegmentReportingOtherItemCompositionDescription" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="SegmentReportingOtherItemCompositionDescription" xlink:title="definition: SegmentReportingInformationLineItems to SegmentReportingOtherItemCompositionDescription" order="18.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="SegmentReportingInformationLineItems" xlink:to="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="definition: SegmentReportingInformationLineItems to ScheduleOfSegmentReportingInformationBySegmentTable" order="19.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="ConsolidationItemsAxis" xlink:title="ConsolidationItemsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="ConsolidationItemsAxis" xlink:title="definition: ScheduleOfSegmentReportingInformationBySegmentTable to ConsolidationItemsAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain" xlink:title="ConsolidationItemsDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain" xlink:title="definition: ConsolidationItemsAxis to ConsolidationItemsDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain_2" xlink:title="ConsolidationItemsDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain_2" xlink:title="definition: ConsolidationItemsAxis to ConsolidationItemsDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember" xlink:label="OperatingSegmentsMember" xlink:title="OperatingSegmentsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConsolidationItemsDomain" xlink:to="OperatingSegmentsMember" xlink:title="definition: ConsolidationItemsDomain to OperatingSegmentsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MaterialReconcilingItemsMember" xlink:label="MaterialReconcilingItemsMember" xlink:title="MaterialReconcilingItemsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConsolidationItemsDomain" xlink:to="MaterialReconcilingItemsMember" xlink:title="definition: ConsolidationItemsDomain to MaterialReconcilingItemsMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="StatementBusinessSegmentsAxis" xlink:title="StatementBusinessSegmentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="StatementBusinessSegmentsAxis" xlink:title="definition: ScheduleOfSegmentReportingInformationBySegmentTable to StatementBusinessSegmentsAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="SegmentDomain" xlink:title="SegmentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementBusinessSegmentsAxis" xlink:to="SegmentDomain" xlink:title="definition: StatementBusinessSegmentsAxis to SegmentDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="SegmentDomain_2" xlink:title="SegmentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementBusinessSegmentsAxis" xlink:to="SegmentDomain_2" xlink:title="definition: StatementBusinessSegmentsAxis to SegmentDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TransactMember" xlink:label="TransactMember" xlink:title="TransactMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentDomain" xlink:to="TransactMember" xlink:title="definition: SegmentDomain to TransactMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="SegmentReportingInformationLineItems" xlink:title="SegmentReportingInformationLineItems" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:label="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:title="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:title="definition: SegmentReportingInformationLineItems to ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: SegmentReportingInformationLineItems to NetIncomeLoss" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:label="InterestIncomeExpenseNonoperatingNet" xlink:title="InterestIncomeExpenseNonoperatingNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="InterestIncomeExpenseNonoperatingNet" xlink:title="definition: SegmentReportingInformationLineItems to InterestIncomeExpenseNonoperatingNet" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="IncomeTaxExpenseBenefit" xlink:title="definition: SegmentReportingInformationLineItems to IncomeTaxExpenseBenefit" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="DepreciationAndAmortization" xlink:title="definition: SegmentReportingInformationLineItems to DepreciationAndAmortization" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:label="EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="EarningsBeforeInterestTaxesDepreciationAndAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="definition: SegmentReportingInformationLineItems to EarningsBeforeInterestTaxesDepreciationAndAmortization" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="ShareBasedCompensation" xlink:title="definition: SegmentReportingInformationLineItems to ShareBasedCompensation" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:label="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="definition: SegmentReportingInformationLineItems to AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeveranceCosts1" xlink:label="SeveranceCosts1" xlink:title="SeveranceCosts1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentReportingInformationLineItems" xlink:to="SeveranceCosts1" xlink:title="definition: SegmentReportingInformationLineItems to SeveranceCosts1" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="SegmentReportingInformationLineItems" xlink:to="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="definition: SegmentReportingInformationLineItems to ScheduleOfSegmentReportingInformationBySegmentTable" order="10.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="TitleOfIndividualAxis" xlink:title="definition: ScheduleOfSegmentReportingInformationBySegmentTable to TitleOfIndividualAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="definition: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain_2" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain_2" xlink:title="definition: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="ChiefExecutiveOfficerMember" xlink:title="ChiefExecutiveOfficerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="ChiefExecutiveOfficerMember" xlink:title="definition: TitleOfIndividualWithRelationshipToEntityDomain to ChiefExecutiveOfficerMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RetirementSavingsPlanDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/BorrowingsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAbstract" xlink:label="LineOfCreditFacilityAbstract" xlink:title="LineOfCreditFacilityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityAbstract" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityMaximumBorrowingCapacity" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="DebtInstrumentBasisSpreadOnVariableRate1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentBasisSpreadOnVariableRate1" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="DebtInstrumentInterestRateStatedPercentage" xlink:title="DebtInstrumentInterestRateStatedPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentInterestRateStatedPercentage" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentInterestRateStatedPercentage" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFinanceCostsGross" xlink:label="DeferredFinanceCostsGross" xlink:title="DeferredFinanceCostsGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DeferredFinanceCostsGross" xlink:title="definition: DebtInstrumentLineItems to DeferredFinanceCostsGross" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:label="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFinancialCovenantEligibleAccountsReceivable" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventory" xlink:label="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="DebtInstrumentFinancialCovenantEligibleInventory" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFinancialCovenantEligibleInventory" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="LineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityRemainingBorrowingCapacity" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:label="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:title="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:label="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:title="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" order="15.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" order="16.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredDebt" xlink:label="SecuredDebt" xlink:title="SecuredDebt" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="SecuredDebt" xlink:title="definition: DebtInstrumentLineItems to SecuredDebt" order="17.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentTable" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentTable" order="18.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentAxis" xlink:title="definition: DebtInstrumentTable to DebtInstrumentAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain" xlink:title="definition: DebtInstrumentAxis to DebtInstrumentNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain_2" xlink:title="DebtInstrumentNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain_2" xlink:title="definition: DebtInstrumentAxis to DebtInstrumentNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:label="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentNameDomain" xlink:to="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="definition: DebtInstrumentNameDomain to RevolvingCreditFacilitySienaLendingGroupLlcMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="VariableRateAxis" xlink:title="VariableRateAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DebtInstrumentTable" xlink:to="VariableRateAxis" xlink:title="definition: DebtInstrumentTable to VariableRateAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain" xlink:title="VariableRateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="VariableRateAxis" xlink:to="VariableRateDomain" xlink:title="definition: VariableRateAxis to VariableRateDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain_2" xlink:title="VariableRateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="VariableRateAxis" xlink:to="VariableRateDomain_2" xlink:title="definition: VariableRateAxis to VariableRateDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrimeRateMember" xlink:label="PrimeRateMember" xlink:title="PrimeRateMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="VariableRateDomain" xlink:to="PrimeRateMember" xlink:title="definition: VariableRateDomain to PrimeRateMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FederalFundsEffectiveSwapRateMember" xlink:label="FederalFundsEffectiveSwapRateMember" xlink:title="FederalFundsEffectiveSwapRateMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="VariableRateDomain" xlink:to="FederalFundsEffectiveSwapRateMember" xlink:title="definition: VariableRateDomain to FederalFundsEffectiveSwapRateMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DebtInstrumentTable" xlink:to="RangeAxis" xlink:title="definition: DebtInstrumentTable to RangeAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedArrangementsToObtainGoodsAndServicesAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="8.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain_2" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain_2" xlink:title="definition: PlanNameAxis to PlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2014Member" xlink:title="definition: PlanNameDomain to EquityIncentivePlan2014Member" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="RangeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to RangeAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedArrangementsToObtainGoodsAndServicesAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="9.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain_2" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain_2" xlink:title="definition: PlanNameAxis to PlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2014Member" xlink:title="definition: PlanNameDomain to EquityIncentivePlan2014Member" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="ShareBasedCompensationAbstract" xlink:title="definition: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to ShareBasedCompensationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="AllocatedShareBasedCompensationExpense" xlink:title="definition: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to AllocatedShareBasedCompensationExpense" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="definition: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="definition: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="IncomeStatementLocationAxis" xlink:title="IncomeStatementLocationAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="IncomeStatementLocationAxis" xlink:title="definition: ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable to IncomeStatementLocationAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain" xlink:title="IncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="IncomeStatementLocationAxis" xlink:to="IncomeStatementLocationDomain" xlink:title="definition: IncomeStatementLocationAxis to IncomeStatementLocationDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain_2" xlink:title="IncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeStatementLocationAxis" xlink:to="IncomeStatementLocationDomain_2" xlink:title="definition: IncomeStatementLocationAxis to IncomeStatementLocationDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="GeneralAndAdministrativeExpenseMember" xlink:title="GeneralAndAdministrativeExpenseMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="IncomeStatementLocationDomain" xlink:to="GeneralAndAdministrativeExpenseMember" xlink:title="definition: IncomeStatementLocationDomain to GeneralAndAdministrativeExpenseMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityAwardsAggregateIntrinsicValueAbstract" xlink:label="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="EquityAwardsAggregateIntrinsicValueAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EquityAwardsAggregateIntrinsicValueAbstract" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:label="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="EquityAwardsWeightedAverageRemainingContractualTermAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EquityAwardsWeightedAverageRemainingContractualTermAbstract" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="ProceedsFromStockOptionsExercised" xlink:title="ProceedsFromStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ProceedsFromStockOptionsExercised" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ProceedsFromStockOptionsExercised" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" order="15.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" order="16.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" order="17.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" order="18.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="19.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="20.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" order="21.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="22.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" order="23.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="24.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" order="25.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" order="26.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" order="27.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" order="28.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="29.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" order="30.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="31.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" order="32.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" order="33.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" order="34.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="35.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="36.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="37.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to StockIssuedDuringPeriodSharesStockOptionsExercised" order="38.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" order="39.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" order="40.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" order="41.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="42.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="43.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain_2" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain_2" xlink:title="definition: PlanNameAxis to PlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="definition: PlanNameDomain to EquityIncentivePlan2005AndEquityIncentivePlan2014Member" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="OperatingLossCarryforwardsLineItems" xlink:title="OperatingLossCarryforwardsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="definition: OperatingLossCarryforwardsLineItems to IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_OperatingLossCarryforwardsNotSubjectToExpiration" xlink:label="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="OperatingLossCarryforwardsNotSubjectToExpiration" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="definition: OperatingLossCarryforwardsLineItems to OperatingLossCarryforwardsNotSubjectToExpiration" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_OperatingLossCarryforwardsSubjectToExpiration" xlink:label="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="OperatingLossCarryforwardsSubjectToExpiration" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="definition: OperatingLossCarryforwardsLineItems to OperatingLossCarryforwardsSubjectToExpiration" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TaxCreditCarryforwardAmountSubjectToExpiration" xlink:label="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="TaxCreditCarryforwardAmountSubjectToExpiration" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="definition: OperatingLossCarryforwardsLineItems to TaxCreditCarryforwardAmountSubjectToExpiration" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TaxCreditCarryforwardExpirationPeriod" xlink:label="TaxCreditCarryforwardExpirationPeriod" xlink:title="TaxCreditCarryforwardExpirationPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="TaxCreditCarryforwardExpirationPeriod" xlink:title="definition: OperatingLossCarryforwardsLineItems to TaxCreditCarryforwardExpirationPeriod" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="definition: OperatingLossCarryforwardsLineItems to IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="OperatingLossCarryforwardsTable" xlink:title="OperatingLossCarryforwardsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="OperatingLossCarryforwardsTable" xlink:title="definition: OperatingLossCarryforwardsLineItems to OperatingLossCarryforwardsTable" order="7.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="TaxCreditCarryforwardAxis" xlink:title="TaxCreditCarryforwardAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="OperatingLossCarryforwardsTable" xlink:to="TaxCreditCarryforwardAxis" xlink:title="definition: OperatingLossCarryforwardsTable to TaxCreditCarryforwardAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="TaxCreditCarryforwardNameDomain" xlink:title="TaxCreditCarryforwardNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="TaxCreditCarryforwardAxis" xlink:to="TaxCreditCarryforwardNameDomain" xlink:title="definition: TaxCreditCarryforwardAxis to TaxCreditCarryforwardNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="TaxCreditCarryforwardNameDomain_2" xlink:title="TaxCreditCarryforwardNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TaxCreditCarryforwardAxis" xlink:to="TaxCreditCarryforwardNameDomain_2" xlink:title="definition: TaxCreditCarryforwardAxis to TaxCreditCarryforwardNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchMember" xlink:label="ResearchMember" xlink:title="ResearchMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="TaxCreditCarryforwardNameDomain" xlink:to="ResearchMember" xlink:title="definition: TaxCreditCarryforwardNameDomain to ResearchMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="IncomeTaxAuthorityAxis" xlink:title="IncomeTaxAuthorityAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="OperatingLossCarryforwardsTable" xlink:to="IncomeTaxAuthorityAxis" xlink:title="definition: OperatingLossCarryforwardsTable to IncomeTaxAuthorityAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain" xlink:title="IncomeTaxAuthorityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="IncomeTaxAuthorityAxis" xlink:to="IncomeTaxAuthorityDomain" xlink:title="definition: IncomeTaxAuthorityAxis to IncomeTaxAuthorityDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain_2" xlink:title="IncomeTaxAuthorityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeTaxAuthorityAxis" xlink:to="IncomeTaxAuthorityDomain_2" xlink:title="definition: IncomeTaxAuthorityAxis to IncomeTaxAuthorityDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember" xlink:label="DomesticCountryMember" xlink:title="DomesticCountryMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="IncomeTaxAuthorityDomain" xlink:to="DomesticCountryMember" xlink:title="definition: IncomeTaxAuthorityDomain to DomesticCountryMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="StateAndLocalJurisdictionMember" xlink:title="StateAndLocalJurisdictionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="IncomeTaxAuthorityDomain" xlink:to="StateAndLocalJurisdictionMember" xlink:title="definition: IncomeTaxAuthorityDomain to StateAndLocalJurisdictionMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="ValuationAndQualifyingAccountsDisclosureLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="MovementInValuationAllowancesAndReservesRollForward" xlink:title="MovementInValuationAllowancesAndReservesRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="MovementInValuationAllowancesAndReservesRollForward" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to MovementInValuationAllowancesAndReservesRollForward" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="ValuationAllowancesAndReservesBalance" xlink:title="ValuationAllowancesAndReservesBalance" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="ValuationAllowancesAndReservesBalance" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to ValuationAllowancesAndReservesBalance" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="ValuationAllowancesAndReservesChargedToCostAndExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to ValuationAllowancesAndReservesChargedToCostAndExpense" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="ValuationAndQualifyingAccountsDisclosureTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to ValuationAndQualifyingAccountsDisclosureTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="ValuationAllowancesAndReservesTypeAxis" xlink:title="ValuationAllowancesAndReservesTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ValuationAndQualifyingAccountsDisclosureTable" xlink:to="ValuationAllowancesAndReservesTypeAxis" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureTable to ValuationAllowancesAndReservesTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="ValuationAllowancesAndReservesDomain" xlink:title="ValuationAllowancesAndReservesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ValuationAllowancesAndReservesTypeAxis" xlink:to="ValuationAllowancesAndReservesDomain" xlink:title="definition: ValuationAllowancesAndReservesTypeAxis to ValuationAllowancesAndReservesDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="ValuationAllowancesAndReservesDomain_2" xlink:title="ValuationAllowancesAndReservesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ValuationAllowancesAndReservesTypeAxis" xlink:to="ValuationAllowancesAndReservesDomain_2" xlink:title="definition: ValuationAllowancesAndReservesTypeAxis to ValuationAllowancesAndReservesDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:title="ValuationAllowanceOfDeferredTaxAssetsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAllowancesAndReservesDomain" xlink:to="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:title="definition: ValuationAllowancesAndReservesDomain to ValuationAllowanceOfDeferredTaxAssetsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:label="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:title="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:to="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:title="definition: ValuationAllowanceOfDeferredTaxAssetsMember to ValuationAllowanceDeferredTaxAssetUnitedStatesMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareReconciliationAbstract" xlink:label="EarningsPerShareReconciliationAbstract" xlink:title="EarningsPerShareReconciliationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="EarningsPerShareReconciliationAbstract" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to EarningsPerShareReconciliationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" order="3.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="definition: ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="AntidilutiveSecuritiesNameDomain" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to AntidilutiveSecuritiesNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain_2" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="AntidilutiveSecuritiesNameDomain_2" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to AntidilutiveSecuritiesNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockCompensationPlanMember" xlink:label="StockCompensationPlanMember" xlink:title="StockCompensationPlanMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="StockCompensationPlanMember" xlink:title="definition: AntidilutiveSecuritiesNameDomain to StockCompensationPlanMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="definition: AntidilutiveSecuritiesNameDomain to EmployeeStockOptionMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember" xlink:label="RestrictedStockMember" xlink:title="RestrictedStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="RestrictedStockMember" xlink:title="definition: AntidilutiveSecuritiesNameDomain to RestrictedStockMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember" xlink:label="PerformanceSharesMember" xlink:title="PerformanceSharesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="PerformanceSharesMember" xlink:title="definition: AntidilutiveSecuritiesNameDomain to PerformanceSharesMember" order="4.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockRepurchaseProgramDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:label="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:title="GeographicAreasRevenuesFromExternalCustomersAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to GeographicAreasRevenuesFromExternalCustomersAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to RevenueFromContractWithCustomerExcludingAssessedTax" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to PropertyPlantAndEquipmentNet" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="ConcentrationRiskPercentage1" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to ConcentrationRiskPercentage1" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="ConsolidationItemsAxis" xlink:title="ConsolidationItemsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConsolidationItemsAxis" xlink:title="definition: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConsolidationItemsAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain" xlink:title="ConsolidationItemsDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain" xlink:title="definition: ConsolidationItemsAxis to ConsolidationItemsDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain_2" xlink:title="ConsolidationItemsDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain_2" xlink:title="definition: ConsolidationItemsAxis to ConsolidationItemsDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ReportableGeographicalComponentsMember" xlink:label="ReportableGeographicalComponentsMember" xlink:title="ReportableGeographicalComponentsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConsolidationItemsDomain" xlink:to="ReportableGeographicalComponentsMember" xlink:title="definition: ConsolidationItemsDomain to ReportableGeographicalComponentsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="definition: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConcentrationRiskByBenchmarkAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain_2" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain_2" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="definition: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="definition: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConcentrationRiskByTypeAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain_2" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain_2" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskTypeDomain" xlink:to="GeographicConcentrationRiskMember" xlink:title="definition: ConcentrationRiskTypeDomain to GeographicConcentrationRiskMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="StatementGeographicalAxis" xlink:title="definition: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to StatementGeographicalAxis" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain_2" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain_2" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="definition: SegmentGeographicalDomain to US" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="InternationalMember" xlink:title="definition: SegmentGeographicalDomain to InternationalMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EuropeMember" xlink:label="EuropeMember" xlink:title="EuropeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="EuropeMember" xlink:title="definition: SegmentGeographicalDomain to EuropeMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_PacificRimMember" xlink:label="PacificRimMember" xlink:title="PacificRimMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="PacificRimMember" xlink:title="definition: SegmentGeographicalDomain to PacificRimMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="CA" xlink:title="definition: SegmentGeographicalDomain to CA" order="5.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetailsCalc2" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RelatedPartyTransactionsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionLineItems" xlink:label="RelatedPartyTransactionLineItems" xlink:title="RelatedPartyTransactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_RelatedPartyTransactionAbstract" xlink:label="RelatedPartyTransactionAbstract" xlink:title="RelatedPartyTransactionAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RelatedPartyTransactionLineItems" xlink:to="RelatedPartyTransactionAbstract" xlink:title="definition: RelatedPartyTransactionLineItems to RelatedPartyTransactionAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RelatedPartyTransactionLineItems" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="definition: RelatedPartyTransactionLineItems to RevenueFromContractWithCustomerExcludingAssessedTax" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RelatedPartyTransactionLineItems" xlink:to="AccountsReceivableNetCurrent" xlink:title="definition: RelatedPartyTransactionLineItems to AccountsReceivableNetCurrent" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:label="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:title="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="RelatedPartyTransactionLineItems" xlink:to="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:title="definition: RelatedPartyTransactionLineItems to ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="RelatedPartyTransactionsByRelatedPartyAxis" xlink:title="RelatedPartyTransactionsByRelatedPartyAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="RelatedPartyTransactionsByRelatedPartyAxis" xlink:title="definition: ScheduleOfRelatedPartyTransactionsByRelatedPartyTable to RelatedPartyTransactionsByRelatedPartyAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="RelatedPartyDomain" xlink:title="RelatedPartyDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="RelatedPartyDomain" xlink:title="definition: RelatedPartyTransactionsByRelatedPartyAxis to RelatedPartyDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="RelatedPartyDomain_2" xlink:title="RelatedPartyDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="RelatedPartyDomain_2" xlink:title="definition: RelatedPartyTransactionsByRelatedPartyAxis to RelatedPartyDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember" xlink:label="RelatedPartyMember" xlink:title="RelatedPartyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RelatedPartyDomain" xlink:to="RelatedPartyMember" xlink:title="definition: RelatedPartyDomain to RelatedPartyMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis" xlink:label="CounterpartyNameAxis" xlink:title="CounterpartyNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="CounterpartyNameAxis" xlink:title="definition: ScheduleOfRelatedPartyTransactionsByRelatedPartyTable to CounterpartyNameAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="RepurchaseAgreementCounterpartyNameDomain" xlink:title="RepurchaseAgreementCounterpartyNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="CounterpartyNameAxis" xlink:to="RepurchaseAgreementCounterpartyNameDomain" xlink:title="definition: CounterpartyNameAxis to RepurchaseAgreementCounterpartyNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="RepurchaseAgreementCounterpartyNameDomain_2" xlink:title="RepurchaseAgreementCounterpartyNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="CounterpartyNameAxis" xlink:to="RepurchaseAgreementCounterpartyNameDomain_2" xlink:title="definition: CounterpartyNameAxis to RepurchaseAgreementCounterpartyNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TheOneGroupHospitalityIncMember" xlink:label="TheOneGroupHospitalityIncMember" xlink:title="TheOneGroupHospitalityIncMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RepurchaseAgreementCounterpartyNameDomain" xlink:to="TheOneGroupHospitalityIncMember" xlink:title="definition: RepurchaseAgreementCounterpartyNameDomain to TheOneGroupHospitalityIncMember" order="1.0" />
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>13
<FILENAME>tact-20241231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 25.3.1.5296 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingArrLineItems" xlink:label="InsiderTradingArrLineItems" xlink:title="InsiderTradingArrLineItems" />
    <link:label xlink:type="resource" xlink:label="ecd_InsiderTradingArrLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="ecd_InsiderTradingArrLineItems" xml:lang="en-US" id="ecd_InsiderTradingArrLineItems">Insider Trading Arrangements [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InsiderTradingArrLineItems" xlink:to="ecd_InsiderTradingArrLineItems" xlink:title="label: InsiderTradingArrLineItems to ecd_InsiderTradingArrLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrAdoptedFlag" xlink:label="Rule10b51ArrAdoptedFlag" xlink:title="Rule10b51ArrAdoptedFlag" />
    <link:label xlink:type="resource" xlink:label="ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="ecd_Rule10b51ArrAdoptedFlag" xml:lang="en-US" id="ecd_Rule10b51ArrAdoptedFlag">Rule 10b5-1 Arrangement Adopted</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Rule10b51ArrAdoptedFlag" xlink:to="ecd_Rule10b51ArrAdoptedFlag" xlink:title="label: Rule10b51ArrAdoptedFlag to ecd_Rule10b51ArrAdoptedFlag" />
    <link:label xlink:type="resource" xlink:label="ecd_Rule10b51ArrAdoptedFlag_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="ecd_Rule10b51ArrAdoptedFlag_lbl1" xml:lang="en-US" id="ecd_Rule10b51ArrAdoptedFlag_lbl1">Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Rule10b51ArrAdoptedFlag" xlink:to="ecd_Rule10b51ArrAdoptedFlag_lbl1" xlink:title="label: Rule10b51ArrAdoptedFlag to ecd_Rule10b51ArrAdoptedFlag_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrTrmntdFlag" xlink:label="Rule10b51ArrTrmntdFlag" xlink:title="Rule10b51ArrTrmntdFlag" />
    <link:label xlink:type="resource" xlink:label="ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="ecd_Rule10b51ArrTrmntdFlag" xml:lang="en-US" id="ecd_Rule10b51ArrTrmntdFlag">Rule 10b5-1 Arrangement Terminated</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Rule10b51ArrTrmntdFlag" xlink:to="ecd_Rule10b51ArrTrmntdFlag" xlink:title="label: Rule10b51ArrTrmntdFlag to ecd_Rule10b51ArrTrmntdFlag" />
    <link:label xlink:type="resource" xlink:label="ecd_Rule10b51ArrTrmntdFlag_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="ecd_Rule10b51ArrTrmntdFlag_lbl1" xml:lang="en-US" id="ecd_Rule10b51ArrTrmntdFlag_lbl1">Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Rule10b51ArrTrmntdFlag" xlink:to="ecd_Rule10b51ArrTrmntdFlag_lbl1" xlink:title="label: Rule10b51ArrTrmntdFlag to ecd_Rule10b51ArrTrmntdFlag_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrAdoptedFlag" xlink:label="NonRule10b51ArrAdoptedFlag" xlink:title="NonRule10b51ArrAdoptedFlag" />
    <link:label xlink:type="resource" xlink:label="ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="ecd_NonRule10b51ArrAdoptedFlag" xml:lang="en-US" id="ecd_NonRule10b51ArrAdoptedFlag">Non-Rule 10b5-1 Arrangement Adopted</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonRule10b51ArrAdoptedFlag" xlink:to="ecd_NonRule10b51ArrAdoptedFlag" xlink:title="label: NonRule10b51ArrAdoptedFlag to ecd_NonRule10b51ArrAdoptedFlag" />
    <link:label xlink:type="resource" xlink:label="ecd_NonRule10b51ArrAdoptedFlag_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="ecd_NonRule10b51ArrAdoptedFlag_lbl1" xml:lang="en-US" id="ecd_NonRule10b51ArrAdoptedFlag_lbl1">Non-Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonRule10b51ArrAdoptedFlag" xlink:to="ecd_NonRule10b51ArrAdoptedFlag_lbl1" xlink:title="label: NonRule10b51ArrAdoptedFlag to ecd_NonRule10b51ArrAdoptedFlag_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrTrmntdFlag" xlink:label="NonRule10b51ArrTrmntdFlag" xlink:title="NonRule10b51ArrTrmntdFlag" />
    <link:label xlink:type="resource" xlink:label="ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="ecd_NonRule10b51ArrTrmntdFlag" xml:lang="en-US" id="ecd_NonRule10b51ArrTrmntdFlag">Non-Rule 10b5-1 Arrangement Terminated</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonRule10b51ArrTrmntdFlag" xlink:to="ecd_NonRule10b51ArrTrmntdFlag" xlink:title="label: NonRule10b51ArrTrmntdFlag to ecd_NonRule10b51ArrTrmntdFlag" />
    <link:label xlink:type="resource" xlink:label="ecd_NonRule10b51ArrTrmntdFlag_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="ecd_NonRule10b51ArrTrmntdFlag_lbl1" xml:lang="en-US" id="ecd_NonRule10b51ArrTrmntdFlag_lbl1">Non-Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonRule10b51ArrTrmntdFlag" xlink:to="ecd_NonRule10b51ArrTrmntdFlag_lbl1" xlink:title="label: NonRule10b51ArrTrmntdFlag to ecd_NonRule10b51ArrTrmntdFlag_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:title="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xml:lang="en-US" id="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">Accrued liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:title="label: AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock to us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1" xlink:title="label: AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock to us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsReceivableNetCurrent" xml:lang="en-US" id="us-gaap_AccountsReceivableNetCurrent">Accounts receivable, net of allowance for expected credit losses of $474 and $768</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:title="label: AccountsReceivableNetCurrent to us-gaap_AccountsReceivableNetCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AccountsReceivableNetCurrent1" xml:lang="en-US" id="us-gaap_AccountsReceivableNetCurrent1">Accounts receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent1" xlink:title="label: AccountsReceivableNetCurrent to us-gaap_AccountsReceivableNetCurrent1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">Intangible assets, accumulated amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="label: FiniteLivedIntangibleAssetsAccumulatedAmortization to us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization1" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization1">Accumulated amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization1" xlink:title="label: FiniteLivedIntangibleAssetsAccumulatedAmortization to us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl2" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl2">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl2" xlink:title="label: FiniteLivedIntangibleAssetsAccumulatedAmortization to us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xml:lang="en-US" id="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax">Accumulated other comprehensive loss, net of tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="label: AccumulatedOtherComprehensiveIncomeLossNetOfTax to us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xml:lang="en-US" id="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">Fixed assets, accumulated depreciation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="label: AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment to us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment1" xml:lang="en-US" id="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment1">Less: Accumulated depreciation and amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment1" xlink:title="label: AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment to us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl2" xml:lang="en-US" id="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl2">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl2" xlink:title="label: AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment to us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="AdditionalPaidInCapitalCommonStock" xlink:title="AdditionalPaidInCapitalCommonStock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdditionalPaidInCapitalCommonStock" xml:lang="en-US" id="us-gaap_AdditionalPaidInCapitalCommonStock">Additional paid-in capital</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdditionalPaidInCapitalCommonStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:title="label: AdditionalPaidInCapitalCommonStock to us-gaap_AdditionalPaidInCapitalCommonStock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation" xlink:label="Depreciation" xlink:title="Depreciation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Depreciation" xml:lang="en-US" id="us-gaap_Depreciation">Depreciation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Depreciation" xlink:to="us-gaap_Depreciation" xlink:title="label: Depreciation to us-gaap_Depreciation" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense" xlink:label="AdvertisingExpense" xlink:title="AdvertisingExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdvertisingExpense" xml:lang="en-US" id="us-gaap_AdvertisingExpense">Advertising expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdvertisingExpense" xlink:to="us-gaap_AdvertisingExpense" xlink:title="label: AdvertisingExpense to us-gaap_AdvertisingExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="AdvertisingCostsPolicyTextBlock" xlink:title="AdvertisingCostsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdvertisingCostsPolicyTextBlock" xml:lang="en-US" id="us-gaap_AdvertisingCostsPolicyTextBlock">Advertising</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdvertisingCostsPolicyTextBlock" xlink:to="us-gaap_AdvertisingCostsPolicyTextBlock" xlink:title="label: AdvertisingCostsPolicyTextBlock to us-gaap_AdvertisingCostsPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent">Balance, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="label: AllowanceForDoubtfulAccountsReceivableCurrent to us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent1" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent1">Balance, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent1" xlink:title="label: AllowanceForDoubtfulAccountsReceivableCurrent to us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent2" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent2">Allowance for expected credit losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent2" xlink:title="label: AllowanceForDoubtfulAccountsReceivableCurrent to us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AmortizationOfIntangibleAssets" xml:lang="en-US" id="us-gaap_AmortizationOfIntangibleAssets">Amortization expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:title="label: AmortizationOfIntangibleAssets to us-gaap_AmortizationOfIntangibleAssets" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember" xlink:label="RestrictedStockMember" xlink:title="RestrictedStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RestrictedStockMember" xml:lang="en-US" id="us-gaap_RestrictedStockMember">Restricted Stock Awards [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockMember" xlink:to="us-gaap_RestrictedStockMember" xlink:title="label: RestrictedStockMember to us-gaap_RestrictedStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RestrictedStockMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RestrictedStockMember_lbl1" xml:lang="en-US" id="us-gaap_RestrictedStockMember_lbl1">Restricted Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockMember" xlink:to="us-gaap_RestrictedStockMember_lbl1" xlink:title="label: RestrictedStockMember to us-gaap_RestrictedStockMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockCompensationPlanMember" xlink:label="StockCompensationPlanMember" xlink:title="StockCompensationPlanMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockCompensationPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockCompensationPlanMember" xml:lang="en-US" id="us-gaap_StockCompensationPlanMember">Stock Awards [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockCompensationPlanMember" xlink:to="us-gaap_StockCompensationPlanMember" xlink:title="label: StockCompensationPlanMember to us-gaap_StockCompensationPlanMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfFinancialPositionAbstract" xml:lang="en-US" id="us-gaap_StatementOfFinancialPositionAbstract">CONSOLIDATED BALANCE SHEETS [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract" xlink:title="label: StatementOfFinancialPositionAbstract to us-gaap_StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareBasic" xml:lang="en-US" id="us-gaap_EarningsPerShareBasic">Basic (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic" xlink:title="label: EarningsPerShareBasic to us-gaap_EarningsPerShareBasic" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashAndCashEquivalentsAtCarryingValue" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsAtCarryingValue">Cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:title="label: CashAndCashEquivalentsAtCarryingValue to us-gaap_CashAndCashEquivalentsAtCarryingValue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="CashAndCashEquivalentsPolicyTextBlock" xlink:title="CashAndCashEquivalentsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsPolicyTextBlock">Cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:title="label: CashAndCashEquivalentsPolicyTextBlock to us-gaap_CashAndCashEquivalentsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1" xlink:title="label: CashAndCashEquivalentsPolicyTextBlock to us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPaidNet" xlink:label="InterestPaidNet" xlink:title="InterestPaidNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestPaidNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InterestPaidNet" xml:lang="en-US" id="us-gaap_InterestPaidNet">Interest paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestPaidNet" xlink:to="us-gaap_InterestPaidNet" xlink:title="label: InterestPaidNet to us-gaap_InterestPaidNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="IncreaseDecreaseInAccountsReceivable" xlink:title="IncreaseDecreaseInAccountsReceivable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInAccountsReceivable" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsReceivable">Accounts receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:title="label: IncreaseDecreaseInAccountsReceivable to us-gaap_IncreaseDecreaseInAccountsReceivable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1">Increase (Decrease) in Accounts Receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1" xlink:title="label: IncreaseDecreaseInAccountsReceivable to us-gaap_IncreaseDecreaseInAccountsReceivable_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInInventories" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInInventories">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:title="label: IncreaseDecreaseInInventories to us-gaap_IncreaseDecreaseInInventories" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInInventories_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInInventories_lbl1">Increase (Decrease) in Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl1" xlink:title="label: IncreaseDecreaseInInventories to us-gaap_IncreaseDecreaseInInventories_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="IncreaseDecreaseInOtherReceivables" xlink:title="IncreaseDecreaseInOtherReceivables" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInOtherReceivables" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherReceivables">Employee retention credit receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherReceivables" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:title="label: IncreaseDecreaseInOtherReceivables to us-gaap_IncreaseDecreaseInOtherReceivables" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOtherReceivables_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherReceivables_lbl1">Increase (Decrease) in Other Receivables</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherReceivables" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_lbl1" xlink:title="label: IncreaseDecreaseInOtherReceivables to us-gaap_IncreaseDecreaseInOtherReceivables_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">Changes in operating assets and liabilities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="label: IncreaseDecreaseInOperatingCapitalAbstract to us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInAccountsPayable" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsPayable">Accounts payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:title="label: IncreaseDecreaseInAccountsPayable to us-gaap_IncreaseDecreaseInAccountsPayable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1">Increase (Decrease) in Accounts Payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xlink:title="label: IncreaseDecreaseInAccountsPayable to us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="CommonStockSharesAuthorized" xlink:title="CommonStockSharesAuthorized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesAuthorized" xml:lang="en-US" id="us-gaap_CommonStockSharesAuthorized">Common stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized" xlink:title="label: CommonStockSharesAuthorized to us-gaap_CommonStockSharesAuthorized" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesIssued" xml:lang="en-US" id="us-gaap_CommonStockSharesIssued">Common stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued" xlink:title="label: CommonStockSharesIssued to us-gaap_CommonStockSharesIssued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_CommonStockSharesIssued1" xml:lang="en-US" id="us-gaap_CommonStockSharesIssued1">Ending balance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued1" xlink:title="label: CommonStockSharesIssued to us-gaap_CommonStockSharesIssued1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued2" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_CommonStockSharesIssued2" xml:lang="en-US" id="us-gaap_CommonStockSharesIssued2">Beginning balance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued2" xlink:title="label: CommonStockSharesIssued to us-gaap_CommonStockSharesIssued2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="CommonStockSharesOutstanding" xlink:title="CommonStockSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesOutstanding" xml:lang="en-US" id="us-gaap_CommonStockSharesOutstanding">Common stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:title="label: CommonStockSharesOutstanding to us-gaap_CommonStockSharesOutstanding" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockValue" xml:lang="en-US" id="us-gaap_CommonStockValue">Common stock, $0.01 par value, 20,000,000 authorized at December 31, 2024 and 2023; 14,068,049 and 14,003,653 shares issued; 10,023,207 and 9,958,811 shares outstanding, at December 31, 2024 and 2023, respectively</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockValue" xlink:to="us-gaap_CommonStockValue" xlink:title="label: CommonStockValue to us-gaap_CommonStockValue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xml:lang="en-US" id="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">Current [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="label: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xml:lang="en-US" id="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1">Current Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:title="label: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">Deferred [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="label: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1">Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:title="label: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:label="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:title="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xml:lang="en-US" id="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract">Deferred income tax components [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:title="label: ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract to us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract">Income taxes [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="label: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1">Income Tax Expense (Benefit), Continuing Operations, by Jurisdiction [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1" xlink:title="label: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract">Components of income tax expense [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="label: IncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1">Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:title="label: IncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" xlink:title="ComprehensiveIncomeNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_ComprehensiveIncomeNetOfTax" xml:lang="en-US" id="us-gaap_ComprehensiveIncomeNetOfTax">Comprehensive (loss) income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax" xlink:title="label: ComprehensiveIncomeNetOfTax to us-gaap_ComprehensiveIncomeNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ComprehensiveIncomeNetOfTax_lbl1" xml:lang="en-US" id="us-gaap_ComprehensiveIncomeNetOfTax_lbl1">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_lbl1" xlink:title="label: ComprehensiveIncomeNetOfTax to us-gaap_ComprehensiveIncomeNetOfTax_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskByTypeAxis" xml:lang="en-US" id="us-gaap_ConcentrationRiskByTypeAxis">Concentration Risk Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" xlink:title="label: ConcentrationRiskByTypeAxis to us-gaap_ConcentrationRiskByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="ConcentrationRiskLineItems" xlink:title="ConcentrationRiskLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskLineItems" xml:lang="en-US" id="us-gaap_ConcentrationRiskLineItems">Concentration Risk [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskLineItems" xlink:title="label: ConcentrationRiskLineItems to us-gaap_ConcentrationRiskLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable" xlink:label="ConcentrationRiskTable" xlink:title="ConcentrationRiskTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskTable" xml:lang="en-US" id="us-gaap_ConcentrationRiskTable">Concentration Risk [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskTable" xlink:title="label: ConcentrationRiskTable to us-gaap_ConcentrationRiskTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskTypeDomain" xml:lang="en-US" id="us-gaap_ConcentrationRiskTypeDomain">Concentration Risk Type [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:title="label: ConcentrationRiskTypeDomain to us-gaap_ConcentrationRiskTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConstructionInProgressGross" xlink:label="ConstructionInProgressGross" xlink:title="ConstructionInProgressGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConstructionInProgressGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ConstructionInProgressGross" xml:lang="en-US" id="us-gaap_ConstructionInProgressGross">Construction in-process</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConstructionInProgressGross" xlink:to="us-gaap_ConstructionInProgressGross" xlink:title="label: ConstructionInProgressGross to us-gaap_ConstructionInProgressGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConstructionInProgressGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConstructionInProgressGross_lbl1" xml:lang="en-US" id="us-gaap_ConstructionInProgressGross_lbl1">Construction in Progress, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConstructionInProgressGross" xlink:to="us-gaap_ConstructionInProgressGross_lbl1" xlink:title="label: ConstructionInProgressGross to us-gaap_ConstructionInProgressGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenue" xlink:label="CostOfRevenue" xlink:title="CostOfRevenue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CostOfRevenue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CostOfRevenue" xml:lang="en-US" id="us-gaap_CostOfRevenue">Cost of sales</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CostOfRevenue" xlink:to="us-gaap_CostOfRevenue" xlink:title="label: CostOfRevenue to us-gaap_CostOfRevenue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="CurrentFederalTaxExpenseBenefit" xlink:title="CurrentFederalTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CurrentFederalTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_CurrentFederalTaxExpenseBenefit">Federal</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:title="label: CurrentFederalTaxExpenseBenefit to us-gaap_CurrentFederalTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentFederalTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_CurrentFederalTaxExpenseBenefit_lbl1">Current Federal Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_lbl1" xlink:title="label: CurrentFederalTaxExpenseBenefit to us-gaap_CurrentFederalTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="CurrentForeignTaxExpenseBenefit" xlink:title="CurrentForeignTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CurrentForeignTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_CurrentForeignTaxExpenseBenefit">Foreign</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentForeignTaxExpenseBenefit" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:title="label: CurrentForeignTaxExpenseBenefit to us-gaap_CurrentForeignTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentForeignTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_CurrentForeignTaxExpenseBenefit_lbl1">Current Foreign Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentForeignTaxExpenseBenefit" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit_lbl1" xlink:title="label: CurrentForeignTaxExpenseBenefit to us-gaap_CurrentForeignTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="CurrentIncomeTaxExpenseBenefit" xlink:title="CurrentIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_CurrentIncomeTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_CurrentIncomeTaxExpenseBenefit">Income taxes current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:title="label: CurrentIncomeTaxExpenseBenefit to us-gaap_CurrentIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1">Current Income Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1" xlink:title="label: CurrentIncomeTaxExpenseBenefit to us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LiabilitiesCurrent" xml:lang="en-US" id="us-gaap_LiabilitiesCurrent">Total current liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent" xlink:title="label: LiabilitiesCurrent to us-gaap_LiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesCurrent_lbl1" xml:lang="en-US" id="us-gaap_LiabilitiesCurrent_lbl1">Liabilities, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl1" xlink:title="label: LiabilitiesCurrent to us-gaap_LiabilitiesCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="LiabilitiesCurrentAbstract" xlink:title="LiabilitiesCurrentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesCurrentAbstract" xml:lang="en-US" id="us-gaap_LiabilitiesCurrentAbstract">Current liabilities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:title="label: LiabilitiesCurrentAbstract to us-gaap_LiabilitiesCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="CurrentStateAndLocalTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_CurrentStateAndLocalTaxExpenseBenefit">State</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:title="label: CurrentStateAndLocalTaxExpenseBenefit to us-gaap_CurrentStateAndLocalTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1">Current State and Local Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1" xlink:title="label: CurrentStateAndLocalTaxExpenseBenefit to us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="CustomerConcentrationRiskMember" xlink:title="CustomerConcentrationRiskMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CustomerConcentrationRiskMember" xml:lang="en-US" id="us-gaap_CustomerConcentrationRiskMember">Customer Concentration Risk [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember" xlink:title="label: CustomerConcentrationRiskMember to us-gaap_CustomerConcentrationRiskMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="DebtDisclosureTextBlock" xlink:title="DebtDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DebtDisclosureTextBlock" xml:lang="en-US" id="us-gaap_DebtDisclosureTextBlock">Borrowings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:title="label: DebtDisclosureTextBlock to us-gaap_DebtDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_DebtDisclosureTextBlock_lbl1">Debt Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl1" xlink:title="label: DebtDisclosureTextBlock to us-gaap_DebtDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="DebtInstrumentInterestRateStatedPercentage" xlink:title="DebtInstrumentInterestRateStatedPercentage" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DebtInstrumentInterestRateStatedPercentage" xml:lang="en-US" id="us-gaap_DebtInstrumentInterestRateStatedPercentage">Interest rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentInterestRateStatedPercentage" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:title="label: DebtInstrumentInterestRateStatedPercentage to us-gaap_DebtInstrumentInterestRateStatedPercentage" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1" xml:lang="en-US" id="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1">Debt Instrument, Interest Rate, Stated Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentInterestRateStatedPercentage" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1" xlink:title="label: DebtInstrumentInterestRateStatedPercentage to us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentNameDomain" xml:lang="en-US" id="us-gaap_DebtInstrumentNameDomain">Debt Instrument, Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:title="label: DebtInstrumentNameDomain to us-gaap_DebtInstrumentNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentAxis" xml:lang="en-US" id="us-gaap_DebtInstrumentAxis">Debt Instrument [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis" xlink:title="label: DebtInstrumentAxis to us-gaap_DebtInstrumentAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentLineItems" xml:lang="en-US" id="us-gaap_DebtInstrumentLineItems">Debt Instrument [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentLineItems" xlink:title="label: DebtInstrumentLineItems to us-gaap_DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentTable" xml:lang="en-US" id="us-gaap_DebtInstrumentTable">Schedule of Long-term Debt Instruments [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentTable" xlink:title="label: DebtInstrumentTable to us-gaap_DebtInstrumentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="DeferredFederalIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_DeferredFederalIncomeTaxExpenseBenefit">Federal</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:title="label: DeferredFederalIncomeTaxExpenseBenefit to us-gaap_DeferredFederalIncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="DeferredForeignIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_DeferredForeignIncomeTaxExpenseBenefit">Foreign</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredForeignIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:title="label: DeferredForeignIncomeTaxExpenseBenefit to us-gaap_DeferredForeignIncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefit">Deferred income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:title="label: DeferredIncomeTaxExpenseBenefit to us-gaap_DeferredIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefit1" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefit1">Income taxes deferred</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit1" xlink:title="label: DeferredIncomeTaxExpenseBenefit to us-gaap_DeferredIncomeTaxExpenseBenefit1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl2" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl2">Deferred Income Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl2" xlink:title="label: DeferredIncomeTaxExpenseBenefit to us-gaap_DeferredIncomeTaxExpenseBenefit_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit">State</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="label: DeferredStateAndLocalIncomeTaxExpenseBenefit to us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="DeferredTaxAssetsDeferredIncome" xlink:title="DeferredTaxAssetsDeferredIncome" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxAssetsDeferredIncome" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsDeferredIncome">Deferred revenue</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsDeferredIncome" xlink:to="us-gaap_DeferredTaxAssetsDeferredIncome" xlink:title="label: DeferredTaxAssetsDeferredIncome to us-gaap_DeferredTaxAssetsDeferredIncome" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsDeferredIncome_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsDeferredIncome_lbl1">Deferred Tax Assets, Deferred Income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsDeferredIncome" xlink:to="us-gaap_DeferredTaxAssetsDeferredIncome_lbl1" xlink:title="label: DeferredTaxAssetsDeferredIncome to us-gaap_DeferredTaxAssetsDeferredIncome_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="DeferredTaxAssetsGross" xlink:title="DeferredTaxAssetsGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredTaxAssetsGross" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsGross">Gross deferred tax assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross" xlink:title="label: DeferredTaxAssetsGross to us-gaap_DeferredTaxAssetsGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsGross_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsGross_lbl1">Deferred Tax Assets, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross_lbl1" xlink:title="label: DeferredTaxAssetsGross to us-gaap_DeferredTaxAssetsGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:label="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="DeferredTaxAssetsInProcessResearchAndDevelopment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment">Capitalized R&amp;D expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:to="us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="label: DeferredTaxAssetsInProcessResearchAndDevelopment to us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="DeferredTaxAssetsInventory" xlink:title="DeferredTaxAssetsInventory" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsInventory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsInventory" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsInventory">Inventory reserves</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsInventory" xlink:to="us-gaap_DeferredTaxAssetsInventory" xlink:title="label: DeferredTaxAssetsInventory to us-gaap_DeferredTaxAssetsInventory" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="DeferredTaxAssetsLiabilitiesNet" xlink:title="DeferredTaxAssetsLiabilitiesNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredTaxAssetsLiabilitiesNet" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsLiabilitiesNet">Total net deferred tax assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:title="label: DeferredTaxAssetsLiabilitiesNet to us-gaap_DeferredTaxAssetsLiabilitiesNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1">Deferred Tax Assets, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1" xlink:title="label: DeferredTaxAssetsLiabilitiesNet to us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="DeferredTaxAssetsNet" xlink:title="DeferredTaxAssetsNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredTaxAssetsNet" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsNet">Net deferred tax assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet" xlink:title="label: DeferredTaxAssetsNet to us-gaap_DeferredTaxAssetsNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsNet_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsNet_lbl1">Deferred Tax Assets, Net of Valuation Allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet_lbl1" xlink:title="label: DeferredTaxAssetsNet to us-gaap_DeferredTaxAssetsNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic">Federal net operating losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="label: DeferredTaxAssetsOperatingLossCarryforwardsDomestic to us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsForeign" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign">Foreign net operating losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="label: DeferredTaxAssetsOperatingLossCarryforwardsForeign to us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal">State net operating losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="label: DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal to us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="DeferredTaxAssetsOther" xlink:title="DeferredTaxAssetsOther" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxAssetsOther" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOther">Other Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOther" xlink:to="us-gaap_DeferredTaxAssetsOther" xlink:title="label: DeferredTaxAssetsOther to us-gaap_DeferredTaxAssetsOther" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOther_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsOther_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOther_lbl1">Deferred Tax Assets, Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOther" xlink:to="us-gaap_DeferredTaxAssetsOther_lbl1" xlink:title="label: DeferredTaxAssetsOther to us-gaap_DeferredTaxAssetsOther_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="DeferredTaxAssetsTaxCreditCarryforwardsResearch" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch">R&amp;D credit carryforward</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="label: DeferredTaxAssetsTaxCreditCarryforwardsResearch to us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation">Other accrued compensation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation to us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments">Accrued severance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments to us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">Stock compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost to us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves">Warranty reserve</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves to us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="DeferredTaxAssetsValuationAllowance" xlink:title="DeferredTaxAssetsValuationAllowance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_DeferredTaxAssetsValuationAllowance" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsValuationAllowance">Valuation allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:title="label: DeferredTaxAssetsValuationAllowance to us-gaap_DeferredTaxAssetsValuationAllowance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsValuationAllowance_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsValuationAllowance_lbl1">Deferred Tax Assets, Valuation Allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl1" xlink:title="label: DeferredTaxAssetsValuationAllowance to us-gaap_DeferredTaxAssetsValuationAllowance_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="DeferredTaxLiabilities" xlink:title="DeferredTaxLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredTaxLiabilities" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilities">Net deferred tax liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilities" xlink:title="label: DeferredTaxLiabilities to us-gaap_DeferredTaxLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxLiabilities_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilities_lbl1">Deferred Tax Liabilities, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilities_lbl1" xlink:title="label: DeferredTaxLiabilities to us-gaap_DeferredTaxLiabilities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="DeferredTaxLiabilitiesOther" xlink:title="DeferredTaxLiabilitiesOther" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxLiabilitiesOther" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesOther">Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesOther" xlink:to="us-gaap_DeferredTaxLiabilitiesOther" xlink:title="label: DeferredTaxLiabilitiesOther to us-gaap_DeferredTaxLiabilitiesOther" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxLiabilitiesOther_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesOther_lbl1">Deferred Tax Liabilities, Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesOther" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_lbl1" xlink:title="label: DeferredTaxLiabilitiesOther to us-gaap_DeferredTaxLiabilitiesOther_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="DefinedContributionPlanCostRecognized" xlink:title="DefinedContributionPlanCostRecognized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DefinedContributionPlanCostRecognized" xml:lang="en-US" id="us-gaap_DefinedContributionPlanCostRecognized">Matching contributions, net of applied forfeitures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DefinedContributionPlanCostRecognized" xlink:to="us-gaap_DefinedContributionPlanCostRecognized" xlink:title="label: DefinedContributionPlanCostRecognized to us-gaap_DefinedContributionPlanCostRecognized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DefinedContributionPlanCostRecognized_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DefinedContributionPlanCostRecognized_lbl1" xml:lang="en-US" id="us-gaap_DefinedContributionPlanCostRecognized_lbl1">Defined Contribution Plan, Cost</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DefinedContributionPlanCostRecognized" xlink:to="us-gaap_DefinedContributionPlanCostRecognized_lbl1" xlink:title="label: DefinedContributionPlanCostRecognized to us-gaap_DefinedContributionPlanCostRecognized_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DepreciationAndAmortization" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_DepreciationAndAmortization" xml:lang="en-US" id="us-gaap_DepreciationAndAmortization">Depreciation and amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization" xlink:title="label: DepreciationAndAmortization to us-gaap_DepreciationAndAmortization" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DepreciationAndAmortization_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DepreciationAndAmortization_lbl1" xml:lang="en-US" id="us-gaap_DepreciationAndAmortization_lbl1">Depreciation, Depletion and Amortization, Nonproduction</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl1" xlink:title="label: DepreciationAndAmortization to us-gaap_DepreciationAndAmortization_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EarningsPerShareDiluted" xml:lang="en-US" id="us-gaap_EarningsPerShareDiluted">Diluted (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:title="label: EarningsPerShareDiluted to us-gaap_EarningsPerShareDiluted" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareDiluted_lbl1" xml:lang="en-US" id="us-gaap_EarningsPerShareDiluted_lbl1">Earnings Per Share, Diluted</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl1" xlink:title="label: EarningsPerShareDiluted to us-gaap_EarningsPerShareDiluted_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="ConsolidationPolicyTextBlock" xlink:title="ConsolidationPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConsolidationPolicyTextBlock" xml:lang="en-US" id="us-gaap_ConsolidationPolicyTextBlock">Principles of consolidation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock" xlink:title="label: ConsolidationPolicyTextBlock to us-gaap_ConsolidationPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xml:lang="en-US" id="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">Foreign income before taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="label: IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign to us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateContinuingOperations">Effective tax rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:title="label: EffectiveIncomeTaxRateContinuingOperations to us-gaap_EffectiveIncomeTaxRateContinuingOperations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateContinuingOperations1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateContinuingOperations1">Effective tax rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations1" xlink:title="label: EffectiveIncomeTaxRateContinuingOperations to us-gaap_EffectiveIncomeTaxRateContinuingOperations1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:label="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:title="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract">Effective Tax Rate Reconciliation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:title="label: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance">Change in valuation allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="label: EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance to us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">Federal statutory tax rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="label: EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate to us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate to us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment">Business meals and entertainment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="label: EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment to us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost">Stock option cancellations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="label: EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost to us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="EffectiveIncomeTaxRateReconciliationOtherAdjustments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments">Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="label: EffectiveIncomeTaxRateReconciliationOtherAdjustments to us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1">Effective Income Tax Rate Reconciliation, Other Adjustments, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationOtherAdjustments to us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes">State income taxes, net of federal income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="label: EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes to us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:label="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="EffectiveIncomeTaxRateReconciliationTaxContingencies" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies">Uncertain tax positions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="label: EffectiveIncomeTaxRateReconciliationTaxContingencies to us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1">Effective Income Tax Rate Reconciliation, Tax Contingency, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationTaxContingencies to us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:label="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch">R&amp;D credit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="label: EffectiveIncomeTaxRateReconciliationTaxCreditsResearch to us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1">Effective Income Tax Rate Reconciliation, Tax Credit, Research, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationTaxCreditsResearch to us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AllocatedShareBasedCompensationExpense" xml:lang="en-US" id="us-gaap_AllocatedShareBasedCompensationExpense">Share-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:title="label: AllocatedShareBasedCompensationExpense to us-gaap_AllocatedShareBasedCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xml:lang="en-US" id="us-gaap_AllocatedShareBasedCompensationExpense_lbl1">Share-Based Payment Arrangement, Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xlink:title="label: AllocatedShareBasedCompensationExpense to us-gaap_AllocatedShareBasedCompensationExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="label: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">Income tax benefit from share-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="label: EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense to us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1">Share-Based Payment Arrangement, Expense, Tax Benefit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense to us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensation" xml:lang="en-US" id="us-gaap_ShareBasedCompensation">Share-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation" xlink:title="label: ShareBasedCompensation to us-gaap_ShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensation1" xml:lang="en-US" id="us-gaap_ShareBasedCompensation1">Share-based compensation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation1" xlink:title="label: ShareBasedCompensation to us-gaap_ShareBasedCompensation1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationAbstract" xml:lang="en-US" id="us-gaap_ShareBasedCompensationAbstract">Share-based compensation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationAbstract" xlink:to="us-gaap_ShareBasedCompensationAbstract" xlink:title="label: ShareBasedCompensationAbstract to us-gaap_ShareBasedCompensationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember" xlink:label="DomesticCountryMember" xlink:title="DomesticCountryMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DomesticCountryMember" xml:lang="en-US" id="us-gaap_DomesticCountryMember">Federal [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember" xlink:title="label: DomesticCountryMember to us-gaap_DomesticCountryMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="label: FiniteLivedIntangibleAssetsMajorClassNameDomain to us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="label: FiniteLivedIntangibleAssetsByMajorClassAxis to us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsLineItems" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsLineItems">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:title="label: FiniteLivedIntangibleAssetsLineItems to us-gaap_FiniteLivedIntangibleAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">Foreign currency translation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="label: ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock to us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1" xlink:title="label: ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock to us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="GeneralAndAdministrativeExpense" xlink:title="GeneralAndAdministrativeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GeneralAndAdministrativeExpense" xml:lang="en-US" id="us-gaap_GeneralAndAdministrativeExpense">General and administrative</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense" xlink:title="label: GeneralAndAdministrativeExpense to us-gaap_GeneralAndAdministrativeExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="GeneralAndAdministrativeExpenseMember" xlink:title="GeneralAndAdministrativeExpenseMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GeneralAndAdministrativeExpenseMember" xml:lang="en-US" id="us-gaap_GeneralAndAdministrativeExpenseMember">General and Administrative Expense [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeneralAndAdministrativeExpenseMember" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:title="label: GeneralAndAdministrativeExpenseMember to us-gaap_GeneralAndAdministrativeExpenseMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeographicConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GeographicConcentrationRiskMember" xml:lang="en-US" id="us-gaap_GeographicConcentrationRiskMember">Geographic Concentration Risk [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeographicConcentrationRiskMember" xlink:to="us-gaap_GeographicConcentrationRiskMember" xlink:title="label: GeographicConcentrationRiskMember to us-gaap_GeographicConcentrationRiskMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:title="GoodwillAndIntangibleAssetsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xml:lang="en-US" id="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock">Goodwill and Intangible assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:title="label: GoodwillAndIntangibleAssetsPolicyTextBlock to us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_GrossProfit" xml:lang="en-US" id="us-gaap_GrossProfit">Gross profit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GrossProfit" xlink:to="us-gaap_GrossProfit" xlink:title="label: GrossProfit to us-gaap_GrossProfit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GrossProfit1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GrossProfit1" xml:lang="en-US" id="us-gaap_GrossProfit1">Gross profit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GrossProfit" xlink:to="us-gaap_GrossProfit1" xlink:title="label: GrossProfit to us-gaap_GrossProfit1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" xlink:title="IncomeStatementAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeStatementAbstract" xml:lang="en-US" id="us-gaap_IncomeStatementAbstract">CONSOLIDATED STATEMENTS OF OPERATIONS [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract" xlink:title="label: IncomeStatementAbstract to us-gaap_IncomeStatementAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="IncomeTaxDisclosureTextBlock" xlink:title="IncomeTaxDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxDisclosureTextBlock" xml:lang="en-US" id="us-gaap_IncomeTaxDisclosureTextBlock">Income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:title="label: IncomeTaxDisclosureTextBlock to us-gaap_IncomeTaxDisclosureTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="IncomeTaxPolicyTextBlock" xlink:title="IncomeTaxPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncomeTaxPolicyTextBlock" xml:lang="en-US" id="us-gaap_IncomeTaxPolicyTextBlock">Income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" xlink:title="label: IncomeTaxPolicyTextBlock to us-gaap_IncomeTaxPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_IncomeTaxPolicyTextBlock_lbl1">Income Tax, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl1" xlink:title="label: IncomeTaxPolicyTextBlock to us-gaap_IncomeTaxPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="IncreaseDecreaseInOtherOperatingAssets" xlink:title="IncreaseDecreaseInOtherOperatingAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherOperatingAssets">Other current and long-term assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:title="label: IncreaseDecreaseInOtherOperatingAssets to us-gaap_IncreaseDecreaseInOtherOperatingAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1">Increase (Decrease) in Other Operating Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1" xlink:title="label: IncreaseDecreaseInOtherOperatingAssets to us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xml:lang="en-US" id="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">Add: Dilutive effect of outstanding equity awards as determined by the treasury stock method (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="label: IncrementalCommonSharesAttributableToShareBasedPaymentArrangements to us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xml:lang="en-US" id="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1">Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xlink:title="label: IncrementalCommonSharesAttributableToShareBasedPaymentArrangements to us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="IntangibleAssetsNetExcludingGoodwill" xlink:title="IntangibleAssetsNetExcludingGoodwill" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IntangibleAssetsNetExcludingGoodwill" xml:lang="en-US" id="us-gaap_IntangibleAssetsNetExcludingGoodwill">Intangible assets, net of accumulated amortization of $1,606 and $1,518</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:title="label: IntangibleAssetsNetExcludingGoodwill to us-gaap_IntangibleAssetsNetExcludingGoodwill" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1" xml:lang="en-US" id="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1">Intangible Assets, Net (Excluding Goodwill)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1" xlink:title="label: IntangibleAssetsNetExcludingGoodwill to us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="FiniteLivedIntangibleAssetsGross" xlink:title="FiniteLivedIntangibleAssetsGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsGross" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsGross">Gross amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:title="label: FiniteLivedIntangibleAssetsGross to us-gaap_FiniteLivedIntangibleAssetsGross" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsNetAbstract">Identifiable intangible assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:title="label: FiniteLivedIntangibleAssetsNetAbstract to us-gaap_FiniteLivedIntangibleAssetsNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="Goodwill" xlink:title="Goodwill" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Goodwill" xml:lang="en-US" id="us-gaap_Goodwill">Goodwill</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Goodwill" xlink:to="us-gaap_Goodwill" xlink:title="label: Goodwill to us-gaap_Goodwill" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestIncomeDomesticDeposits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InterestIncomeDomesticDeposits" xml:lang="en-US" id="us-gaap_InterestIncomeDomesticDeposits">Interest income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestIncomeDomesticDeposits" xlink:to="us-gaap_InterestIncomeDomesticDeposits" xlink:title="label: InterestIncomeDomesticDeposits to us-gaap_InterestIncomeDomesticDeposits" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryNet" xml:lang="en-US" id="us-gaap_InventoryNet">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryNet" xlink:to="us-gaap_InventoryNet" xlink:title="label: InventoryNet to us-gaap_InventoryNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryNet1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_InventoryNet1" xml:lang="en-US" id="us-gaap_InventoryNet1">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryNet" xlink:to="us-gaap_InventoryNet1" xlink:title="label: InventoryNet to us-gaap_InventoryNet1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="InventoryPolicyTextBlock" xlink:title="InventoryPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_InventoryPolicyTextBlock" xml:lang="en-US" id="us-gaap_InventoryPolicyTextBlock">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock" xlink:title="label: InventoryPolicyTextBlock to us-gaap_InventoryPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_InventoryPolicyTextBlock_lbl1">Inventory, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl1" xlink:title="label: InventoryPolicyTextBlock to us-gaap_InventoryPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="LeaseholdImprovementsMember" xlink:title="LeaseholdImprovementsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LeaseholdImprovementsMember" xml:lang="en-US" id="us-gaap_LeaseholdImprovementsMember">Leasehold Improvements [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LeaseholdImprovementsMember" xlink:to="us-gaap_LeaseholdImprovementsMember" xlink:title="label: LeaseholdImprovementsMember to us-gaap_LeaseholdImprovementsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="Liabilities" xlink:title="Liabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_Liabilities" xml:lang="en-US" id="us-gaap_Liabilities">Total liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Liabilities" xlink:to="us-gaap_Liabilities" xlink:title="label: Liabilities to us-gaap_Liabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Liabilities_lbl1" xml:lang="en-US" id="us-gaap_Liabilities_lbl1">Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Liabilities" xlink:to="us-gaap_Liabilities_lbl1" xlink:title="label: Liabilities to us-gaap_Liabilities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LiabilitiesAndStockholdersEquity" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquity">Total liabilities and shareholders' equity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" xlink:title="label: LiabilitiesAndStockholdersEquity to us-gaap_LiabilitiesAndStockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquity_lbl1">Liabilities and Equity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xlink:title="label: LiabilitiesAndStockholdersEquity to us-gaap_LiabilitiesAndStockholdersEquity_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquityAbstract">Liabilities and Shareholders' Equity:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:title="label: LiabilitiesAndStockholdersEquityAbstract to us-gaap_LiabilitiesAndStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="LinesOfCreditCurrent" xlink:title="LinesOfCreditCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LinesOfCreditCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LinesOfCreditCurrent" xml:lang="en-US" id="us-gaap_LinesOfCreditCurrent">Revolving loan payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LinesOfCreditCurrent" xlink:to="us-gaap_LinesOfCreditCurrent" xlink:title="label: LinesOfCreditCurrent to us-gaap_LinesOfCreditCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">Maximum borrowing capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="label: LineOfCreditFacilityMaximumBorrowingCapacity to us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1" xlink:title="label: LineOfCreditFacilityMaximumBorrowingCapacity to us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="LineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity">Additional borrowing capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="label: LineOfCreditFacilityRemainingBorrowingCapacity to us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1">Line of Credit Facility, Remaining Borrowing Capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1" xlink:title="label: LineOfCreditFacilityRemainingBorrowingCapacity to us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAbstract" xlink:label="LineOfCreditFacilityAbstract" xlink:title="LineOfCreditFacilityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LineOfCreditFacilityAbstract" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityAbstract">Borrowings [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityAbstract" xlink:to="us-gaap_LineOfCreditFacilityAbstract" xlink:title="label: LineOfCreditFacilityAbstract to us-gaap_LineOfCreditFacilityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityAbstract_lbl1" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityAbstract_lbl1">Line of Credit Facility [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityAbstract" xlink:to="us-gaap_LineOfCreditFacilityAbstract_lbl1" xlink:title="label: LineOfCreditFacilityAbstract to us-gaap_LineOfCreditFacilityAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfLoanCosts" xlink:label="PaymentsOfLoanCosts" xlink:title="PaymentsOfLoanCosts" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsOfLoanCosts" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:title="us-gaap_PaymentsOfLoanCosts" xml:lang="en-US" id="us-gaap_PaymentsOfLoanCosts">Payment of bank financing costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsOfLoanCosts" xlink:to="us-gaap_PaymentsOfLoanCosts" xlink:title="label: PaymentsOfLoanCosts to us-gaap_PaymentsOfLoanCosts" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsOfLoanCosts_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PaymentsOfLoanCosts_lbl1" xml:lang="en-US" id="us-gaap_PaymentsOfLoanCosts_lbl1">Payments of Loan Costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsOfLoanCosts" xlink:to="us-gaap_PaymentsOfLoanCosts_lbl1" xlink:title="label: PaymentsOfLoanCosts to us-gaap_PaymentsOfLoanCosts_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_MachineryAndEquipmentMember" xml:lang="en-US" id="us-gaap_MachineryAndEquipmentMember">Tooling, Machinery and Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MachineryAndEquipmentMember" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:title="label: MachineryAndEquipmentMember to us-gaap_MachineryAndEquipmentMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MachineryAndEquipmentMember1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MachineryAndEquipmentMember1" xml:lang="en-US" id="us-gaap_MachineryAndEquipmentMember1">Machinery and Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MachineryAndEquipmentMember" xlink:to="us-gaap_MachineryAndEquipmentMember1" xlink:title="label: MachineryAndEquipmentMember to us-gaap_MachineryAndEquipmentMember1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MarketingExpense" xlink:label="MarketingExpense" xlink:title="MarketingExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MarketingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MarketingExpense" xml:lang="en-US" id="us-gaap_MarketingExpense">Marketing expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MarketingExpense" xlink:to="us-gaap_MarketingExpense" xlink:title="label: MarketingExpense to us-gaap_MarketingExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="RelatedPartyTransactionsByRelatedPartyAxis" xlink:title="RelatedPartyTransactionsByRelatedPartyAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xml:lang="en-US" id="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis">Related and Nonrelated Parties [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:title="label: RelatedPartyTransactionsByRelatedPartyAxis to us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivities" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivities">Net cash provided by (used in) financing activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:title="label: NetCashProvidedByUsedInFinancingActivities to us-gaap_NetCashProvidedByUsedInFinancingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInFinancingActivities to us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">Cash flows from financing activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="label: NetCashProvidedByUsedInFinancingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivities" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivities">Net cash used in investing activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:title="label: NetCashProvidedByUsedInInvestingActivities to us-gaap_NetCashProvidedByUsedInInvestingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInInvestingActivities to us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">Cash flows from investing activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="label: NetCashProvidedByUsedInInvestingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivities" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivities">Net cash provided by operating activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:title="label: NetCashProvidedByUsedInOperatingActivities to us-gaap_NetCashProvidedByUsedInOperatingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInOperatingActivities to us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">Cash flows from operating activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="label: NetCashProvidedByUsedInOperatingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetIncomeLoss" xml:lang="en-US" id="us-gaap_NetIncomeLoss">Net (loss) income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetIncomeLoss1" xml:lang="en-US" id="us-gaap_NetIncomeLoss1">Net (loss) income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss1" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_NetIncomeLoss2" xml:lang="en-US" id="us-gaap_NetIncomeLoss2">Net (loss) income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss2" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OccupancyNet" xlink:label="OccupancyNet" xlink:title="OccupancyNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OccupancyNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OccupancyNet" xml:lang="en-US" id="us-gaap_OccupancyNet">Occupancy costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OccupancyNet" xlink:to="us-gaap_OccupancyNet" xlink:title="label: OccupancyNet to us-gaap_OccupancyNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NonoperatingIncomeExpense" xml:lang="en-US" id="us-gaap_NonoperatingIncomeExpense">Interest and other income (expense)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense" xlink:title="label: NonoperatingIncomeExpense to us-gaap_NonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NonoperatingIncomeExpense_lbl1" xml:lang="en-US" id="us-gaap_NonoperatingIncomeExpense_lbl1">Nonoperating Income (Expense)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl1" xlink:title="label: NonoperatingIncomeExpense to us-gaap_NonoperatingIncomeExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="NonoperatingIncomeExpenseAbstract" xlink:title="NonoperatingIncomeExpenseAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NonoperatingIncomeExpenseAbstract" xml:lang="en-US" id="us-gaap_NonoperatingIncomeExpenseAbstract">Interest and other income (expense):</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_NonoperatingIncomeExpenseAbstract" xlink:title="label: NonoperatingIncomeExpenseAbstract to us-gaap_NonoperatingIncomeExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsNoncurrent" xlink:label="AssetsNoncurrent" xlink:title="AssetsNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_AssetsNoncurrent" xml:lang="en-US" id="us-gaap_AssetsNoncurrent">Total noncurrent assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsNoncurrent" xlink:to="us-gaap_AssetsNoncurrent" xlink:title="label: AssetsNoncurrent to us-gaap_AssetsNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_AssetsNoncurrent_lbl1">Assets, Noncurrent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsNoncurrent" xlink:to="us-gaap_AssetsNoncurrent_lbl1" xlink:title="label: AssetsNoncurrent to us-gaap_AssetsNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="LiabilitiesNoncurrent" xlink:title="LiabilitiesNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LiabilitiesNoncurrent" xml:lang="en-US" id="us-gaap_LiabilitiesNoncurrent">Total noncurrent liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent" xlink:title="label: LiabilitiesNoncurrent to us-gaap_LiabilitiesNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_LiabilitiesNoncurrent_lbl1">Liabilities, Noncurrent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl1" xlink:title="label: LiabilitiesNoncurrent to us-gaap_LiabilitiesNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MarketingAndAdvertisingExpenseAbstract" xlink:label="MarketingAndAdvertisingExpenseAbstract" xlink:title="MarketingAndAdvertisingExpenseAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MarketingAndAdvertisingExpenseAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MarketingAndAdvertisingExpenseAbstract" xml:lang="en-US" id="us-gaap_MarketingAndAdvertisingExpenseAbstract">Advertising [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MarketingAndAdvertisingExpenseAbstract" xlink:to="us-gaap_MarketingAndAdvertisingExpenseAbstract" xlink:title="label: MarketingAndAdvertisingExpenseAbstract to us-gaap_MarketingAndAdvertisingExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_OperatingIncomeLoss" xml:lang="en-US" id="us-gaap_OperatingIncomeLoss">Operating (loss) income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss" xlink:title="label: OperatingIncomeLoss to us-gaap_OperatingIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingIncomeLoss_lbl1" xml:lang="en-US" id="us-gaap_OperatingIncomeLoss_lbl1">Operating Income (Loss)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl1" xlink:title="label: OperatingIncomeLoss to us-gaap_OperatingIncomeLoss_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherAssetsCurrent" xml:lang="en-US" id="us-gaap_OtherAssetsCurrent">Other current assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent" xlink:title="label: OtherAssetsCurrent to us-gaap_OtherAssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherNonoperatingIncomeExpense" xml:lang="en-US" id="us-gaap_OtherNonoperatingIncomeExpense">Other, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:title="label: OtherNonoperatingIncomeExpense to us-gaap_OtherNonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OtherNonoperatingIncomeExpense1" xml:lang="en-US" id="us-gaap_OtherNonoperatingIncomeExpense1">Other (expense) income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense1" xlink:title="label: OtherNonoperatingIncomeExpense to us-gaap_OtherNonoperatingIncomeExpense1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PatentsMember" xlink:label="PatentsMember" xlink:title="PatentsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PatentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PatentsMember" xml:lang="en-US" id="us-gaap_PatentsMember">Patents [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PatentsMember" xlink:to="us-gaap_PatentsMember" xlink:title="label: PatentsMember to us-gaap_PatentsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="PreferredStockSharesAuthorized" xlink:title="PreferredStockSharesAuthorized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockSharesAuthorized" xml:lang="en-US" id="us-gaap_PreferredStockSharesAuthorized">Preferred stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized" xlink:title="label: PreferredStockSharesAuthorized to us-gaap_PreferredStockSharesAuthorized" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="PreferredStockSharesIssued" xlink:title="PreferredStockSharesIssued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockSharesIssued" xml:lang="en-US" id="us-gaap_PreferredStockSharesIssued">Preferred stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued" xlink:title="label: PreferredStockSharesIssued to us-gaap_PreferredStockSharesIssued" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="PreferredStockSharesOutstanding" xlink:title="PreferredStockSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockSharesOutstanding" xml:lang="en-US" id="us-gaap_PreferredStockSharesOutstanding">Preferred stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding" xlink:title="label: PreferredStockSharesOutstanding to us-gaap_PreferredStockSharesOutstanding" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="PreferredStockParOrStatedValuePerShare" xlink:title="PreferredStockParOrStatedValuePerShare" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockParOrStatedValuePerShare" xml:lang="en-US" id="us-gaap_PreferredStockParOrStatedValuePerShare">Preferred stock par value (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:title="label: PreferredStockParOrStatedValuePerShare to us-gaap_PreferredStockParOrStatedValuePerShare" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidTaxes" xlink:label="PrepaidTaxes" xlink:title="PrepaidTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PrepaidTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PrepaidTaxes" xml:lang="en-US" id="us-gaap_PrepaidTaxes">Prepaid income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PrepaidTaxes" xlink:to="us-gaap_PrepaidTaxes" xlink:title="label: PrepaidTaxes to us-gaap_PrepaidTaxes" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ProceedsFromLinesOfCredit" xml:lang="en-US" id="us-gaap_ProceedsFromLinesOfCredit">Proceeds from bank borrowings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:title="label: ProceedsFromLinesOfCredit to us-gaap_ProceedsFromLinesOfCredit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromLinesOfCredit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProceedsFromLinesOfCredit_lbl1" xml:lang="en-US" id="us-gaap_ProceedsFromLinesOfCredit_lbl1">Proceeds from Lines of Credit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit_lbl1" xlink:title="label: ProceedsFromLinesOfCredit to us-gaap_ProceedsFromLinesOfCredit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="ProceedsFromStockOptionsExercised" xlink:title="ProceedsFromStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ProceedsFromStockOptionsExercised" xml:lang="en-US" id="us-gaap_ProceedsFromStockOptionsExercised">Cash received from exercise of stock options</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" xlink:title="label: ProceedsFromStockOptionsExercised to us-gaap_ProceedsFromStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProceedsFromStockOptionsExercised_lbl1" xml:lang="en-US" id="us-gaap_ProceedsFromStockOptionsExercised_lbl1">Proceeds from Stock Options Exercised</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl1" xlink:title="label: ProceedsFromStockOptionsExercised to us-gaap_ProceedsFromStockOptionsExercised_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfessionalAndContractServicesExpense" xlink:label="ProfessionalAndContractServicesExpense" xlink:title="ProfessionalAndContractServicesExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProfessionalAndContractServicesExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProfessionalAndContractServicesExpense" xml:lang="en-US" id="us-gaap_ProfessionalAndContractServicesExpense">Professional services</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProfessionalAndContractServicesExpense" xlink:to="us-gaap_ProfessionalAndContractServicesExpense" xlink:title="label: ProfessionalAndContractServicesExpense to us-gaap_ProfessionalAndContractServicesExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentGross" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentGross">Fixed assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:title="label: PropertyPlantAndEquipmentGross to us-gaap_PropertyPlantAndEquipmentGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentGross_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentGross_lbl1">Property, Plant and Equipment, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl1" xlink:title="label: PropertyPlantAndEquipmentGross to us-gaap_PropertyPlantAndEquipmentGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentNet" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNet">Fixed assets, net of accumulated depreciation of $19,468 and $18,646</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:title="label: PropertyPlantAndEquipmentNet to us-gaap_PropertyPlantAndEquipmentNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentNet1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNet1">Fixed assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet1" xlink:title="label: PropertyPlantAndEquipmentNet to us-gaap_PropertyPlantAndEquipmentNet1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet2" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentNet2" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNet2">Fixed assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet2" xlink:title="label: PropertyPlantAndEquipmentNet to us-gaap_PropertyPlantAndEquipmentNet2" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentNet_lbl3" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNet_lbl3">Property, Plant and Equipment, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl3" xlink:title="label: PropertyPlantAndEquipmentNet to us-gaap_PropertyPlantAndEquipmentNet_lbl3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentAbstract" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentAbstract">Fixed assets, net [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:title="label: PropertyPlantAndEquipmentAbstract to us-gaap_PropertyPlantAndEquipmentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentAbstract1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentAbstract1">Fixed assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract1" xlink:title="label: PropertyPlantAndEquipmentAbstract to us-gaap_PropertyPlantAndEquipmentAbstract1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">Fixed assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="label: PropertyPlantAndEquipmentPolicyTextBlock to us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1" xlink:title="label: PropertyPlantAndEquipmentPolicyTextBlock to us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="ProvisionForDoubtfulAccounts" xlink:title="ProvisionForDoubtfulAccounts" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProvisionForDoubtfulAccounts" xml:lang="en-US" id="us-gaap_ProvisionForDoubtfulAccounts">Additions charged to costs and expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts" xlink:title="label: ProvisionForDoubtfulAccounts to us-gaap_ProvisionForDoubtfulAccounts" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xml:lang="en-US" id="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">Capital expenditures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="label: PaymentsToAcquirePropertyPlantAndEquipment to us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xml:lang="en-US" id="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xlink:title="label: PaymentsToAcquirePropertyPlantAndEquipment to us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:label="TradeAndOtherAccountsReceivablePolicy" xlink:title="TradeAndOtherAccountsReceivablePolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TradeAndOtherAccountsReceivablePolicy" xml:lang="en-US" id="us-gaap_TradeAndOtherAccountsReceivablePolicy">Accounts receivable and credit losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TradeAndOtherAccountsReceivablePolicy" xlink:to="us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:title="label: TradeAndOtherAccountsReceivablePolicy to us-gaap_TradeAndOtherAccountsReceivablePolicy" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:title="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xml:lang="en-US" id="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">Unrecognized tax benefits [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:title="label: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="RelatedPartyDomain" xlink:title="RelatedPartyDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RelatedPartyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RelatedPartyDomain" xml:lang="en-US" id="us-gaap_RelatedPartyDomain">Related and Nonrelated Parties [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RelatedPartyDomain" xlink:to="us-gaap_RelatedPartyDomain" xlink:title="label: RelatedPartyDomain to us-gaap_RelatedPartyDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionLineItems" xlink:label="RelatedPartyTransactionLineItems" xlink:title="RelatedPartyTransactionLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RelatedPartyTransactionLineItems" xml:lang="en-US" id="us-gaap_RelatedPartyTransactionLineItems">Related Party Transaction [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RelatedPartyTransactionLineItems" xlink:to="us-gaap_RelatedPartyTransactionLineItems" xlink:title="label: RelatedPartyTransactionLineItems to us-gaap_RelatedPartyTransactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:label="RelatedPartyTransactionsDisclosureTextBlock" xlink:title="RelatedPartyTransactionsDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xml:lang="en-US" id="us-gaap_RelatedPartyTransactionsDisclosureTextBlock">Related party transactions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RelatedPartyTransactionsDisclosureTextBlock" xlink:to="us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:title="label: RelatedPartyTransactionsDisclosureTextBlock to us-gaap_RelatedPartyTransactionsDisclosureTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:label="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:title="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xml:lang="en-US" id="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable">Related Party Transaction [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:title="label: ScheduleOfRelatedPartyTransactionsByRelatedPartyTable to us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="ResearchAndDevelopmentExpensePolicy" xlink:title="ResearchAndDevelopmentExpensePolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ResearchAndDevelopmentExpensePolicy" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpensePolicy">Engineering, design and product development</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpensePolicy" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:title="label: ResearchAndDevelopmentExpensePolicy to us-gaap_ResearchAndDevelopmentExpensePolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1">Research and Development Expense, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpensePolicy" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1" xlink:title="label: ResearchAndDevelopmentExpensePolicy to us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchMember" xlink:label="ResearchMember" xlink:title="ResearchMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ResearchMember" xml:lang="en-US" id="us-gaap_ResearchMember">R&amp;D Credit [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchMember" xlink:to="us-gaap_ResearchMember" xlink:title="label: ResearchMember to us-gaap_ResearchMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RetainedEarningsAccumulatedDeficit" xml:lang="en-US" id="us-gaap_RetainedEarningsAccumulatedDeficit">Retained earnings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:title="label: RetainedEarningsAccumulatedDeficit to us-gaap_RetainedEarningsAccumulatedDeficit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="InventoryDisclosureTextBlock" xlink:title="InventoryDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_InventoryDisclosureTextBlock" xml:lang="en-US" id="us-gaap_InventoryDisclosureTextBlock">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:title="label: InventoryDisclosureTextBlock to us-gaap_InventoryDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_InventoryDisclosureTextBlock_lbl1">Inventory Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl1" xlink:title="label: InventoryDisclosureTextBlock to us-gaap_InventoryDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="PropertyPlantAndEquipmentTextBlock" xlink:title="PropertyPlantAndEquipmentTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentTextBlock" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentTextBlock">Fixed Assets, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:title="label: PropertyPlantAndEquipmentTextBlock to us-gaap_PropertyPlantAndEquipmentTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1" xlink:title="label: PropertyPlantAndEquipmentTextBlock to us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:title="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xml:lang="en-US" id="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock">Concentration of Credit Risk</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:title="label: SchedulesOfConcentrationOfRiskByRiskFactorTextBlock to us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1" xml:lang="en-US" id="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1">Schedules of Concentration of Risk, by Risk Factor [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1" xlink:title="label: SchedulesOfConcentrationOfRiskByRiskFactorTextBlock to us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredDebt" xlink:label="SecuredDebt" xlink:title="SecuredDebt" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SecuredDebt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SecuredDebt" xml:lang="en-US" id="us-gaap_SecuredDebt">Balance outstanding</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SecuredDebt" xlink:to="us-gaap_SecuredDebt" xlink:title="label: SecuredDebt to us-gaap_SecuredDebt" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SecuredDebt_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SecuredDebt_lbl1" xml:lang="en-US" id="us-gaap_SecuredDebt_lbl1">Secured Debt</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SecuredDebt" xlink:to="us-gaap_SecuredDebt_lbl1" xlink:title="label: SecuredDebt to us-gaap_SecuredDebt_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="SegmentReportingDisclosureTextBlock" xlink:title="SegmentReportingDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SegmentReportingDisclosureTextBlock" xml:lang="en-US" id="us-gaap_SegmentReportingDisclosureTextBlock">Segment reporting</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" xlink:title="label: SegmentReportingDisclosureTextBlock to us-gaap_SegmentReportingDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_SegmentReportingDisclosureTextBlock_lbl1">Segment Reporting Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl1" xlink:title="label: SegmentReportingDisclosureTextBlock to us-gaap_SegmentReportingDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock">Operating Financial Results of Segment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:title="label: ScheduleOfSegmentReportingInformationBySegmentTextBlock to us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="SegmentReportingInformationLineItems" xlink:title="SegmentReportingInformationLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingInformationLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingInformationLineItems" xml:lang="en-US" id="us-gaap_SegmentReportingInformationLineItems">Segment Reporting Information [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingInformationLineItems" xlink:title="label: SegmentReportingInformationLineItems to us-gaap_SegmentReportingInformationLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xml:lang="en-US" id="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable">Schedule of Segment Reporting Information, by Segment [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="label: ScheduleOfSegmentReportingInformationBySegmentTable to us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="SellingAndMarketingExpense" xlink:title="SellingAndMarketingExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SellingAndMarketingExpense" xml:lang="en-US" id="us-gaap_SellingAndMarketingExpense">Selling and marketing</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense" xlink:title="label: SellingAndMarketingExpense to us-gaap_SellingAndMarketingExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SeriesAPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SeriesAPreferredStockMember" xml:lang="en-US" id="us-gaap_SeriesAPreferredStockMember">Series A Preferred Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SeriesAPreferredStockMember" xlink:to="us-gaap_SeriesAPreferredStockMember" xlink:title="label: SeriesAPreferredStockMember to us-gaap_SeriesAPreferredStockMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xml:lang="en-US" id="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract">Stock incentive plans [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="label: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1">Share-Based Payment Arrangement, Disclosure [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1" xlink:title="label: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">Granted (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1">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:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">Outstanding, beginning of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1">Outstanding, end of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">Number of shares authorized (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">Number of shares available for grant (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">Intrinsic value of stock options exercised</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod">Expired (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod">Forfeited (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">Outstanding, end of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber1">Outstanding, beginning of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">Outstanding, end of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice1">Outstanding, beginning of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">Options exercisable, end of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">Options exercisable, end of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">Dividend yield</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">Expected volatility</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">Risk-free interest rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain">Equity Award [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xml:lang="en-US" id="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="label: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="StateAndLocalJurisdictionMember" xlink:title="StateAndLocalJurisdictionMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StateAndLocalJurisdictionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StateAndLocalJurisdictionMember" xml:lang="en-US" id="us-gaap_StateAndLocalJurisdictionMember">State [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StateAndLocalJurisdictionMember" xlink:to="us-gaap_StateAndLocalJurisdictionMember" xlink:title="label: StateAndLocalJurisdictionMember to us-gaap_StateAndLocalJurisdictionMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StateAndLocalJurisdictionMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StateAndLocalJurisdictionMember_lbl1" xml:lang="en-US" id="us-gaap_StateAndLocalJurisdictionMember_lbl1">State and Local Jurisdiction [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StateAndLocalJurisdictionMember" xlink:to="us-gaap_StateAndLocalJurisdictionMember_lbl1" xlink:title="label: StateAndLocalJurisdictionMember to us-gaap_StateAndLocalJurisdictionMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" xlink:title="StatementOfCashFlowsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfCashFlowsAbstract" xml:lang="en-US" id="us-gaap_StatementOfCashFlowsAbstract">CONSOLIDATED STATEMENTS OF CASH FLOWS [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract" xlink:title="label: StatementOfCashFlowsAbstract to us-gaap_StatementOfCashFlowsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xml:lang="en-US" id="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="label: StatementOfIncomeAndComprehensiveIncomeAbstract to us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" xlink:title="StatementOfStockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfStockholdersEquityAbstract" xml:lang="en-US" id="us-gaap_StatementOfStockholdersEquityAbstract">CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract" xlink:title="label: StatementOfStockholdersEquityAbstract to us-gaap_StatementOfStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xml:lang="en-US" id="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">Share-based payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="label: ShareBasedCompensationOptionAndIncentivePlansPolicy to us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockholdersEquityAbstract" xml:lang="en-US" id="us-gaap_StockholdersEquityAbstract">Shareholders' equity:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:title="label: StockholdersEquityAbstract to us-gaap_StockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SummaryOfValuationAllowanceTextBlock" xlink:label="SummaryOfValuationAllowanceTextBlock" xlink:title="SummaryOfValuationAllowanceTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SummaryOfValuationAllowanceTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SummaryOfValuationAllowanceTextBlock" xml:lang="en-US" id="us-gaap_SummaryOfValuationAllowanceTextBlock">Valuation Allowance on Deferred Tax Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SummaryOfValuationAllowanceTextBlock" xlink:to="us-gaap_SummaryOfValuationAllowanceTextBlock" xlink:title="label: SummaryOfValuationAllowanceTextBlock to us-gaap_SummaryOfValuationAllowanceTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="SupplementalCashFlowInformationAbstract" xlink:title="SupplementalCashFlowInformationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SupplementalCashFlowInformationAbstract" xml:lang="en-US" id="us-gaap_SupplementalCashFlowInformationAbstract">Supplemental cash flow information:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:title="label: SupplementalCashFlowInformationAbstract to us-gaap_SupplementalCashFlowInformationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SupplementalCashFlowInformationAbstract_lbl1" xml:lang="en-US" id="us-gaap_SupplementalCashFlowInformationAbstract_lbl1">Supplemental Cash Flow Information [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl1" xlink:title="label: SupplementalCashFlowInformationAbstract to us-gaap_SupplementalCashFlowInformationAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="TaxCreditCarryforwardNameDomain" xlink:title="TaxCreditCarryforwardNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TaxCreditCarryforwardNameDomain" xml:lang="en-US" id="us-gaap_TaxCreditCarryforwardNameDomain">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardNameDomain" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:title="label: TaxCreditCarryforwardNameDomain to us-gaap_TaxCreditCarryforwardNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="TaxCreditCarryforwardAxis" xlink:title="TaxCreditCarryforwardAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TaxCreditCarryforwardAxis" xml:lang="en-US" id="us-gaap_TaxCreditCarryforwardAxis">Tax Credit Carryforward [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:title="label: TaxCreditCarryforwardAxis to us-gaap_TaxCreditCarryforwardAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaid" xlink:label="IncomeTaxesPaid" xlink:title="IncomeTaxesPaid" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxesPaid" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxesPaid" xml:lang="en-US" id="us-gaap_IncomeTaxesPaid">Income taxes paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxesPaid" xlink:to="us-gaap_IncomeTaxesPaid" xlink:title="label: IncomeTaxesPaid to us-gaap_IncomeTaxesPaid" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ToolsDiesAndMoldsMember" xlink:label="ToolsDiesAndMoldsMember" xlink:title="ToolsDiesAndMoldsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ToolsDiesAndMoldsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ToolsDiesAndMoldsMember" xml:lang="en-US" id="us-gaap_ToolsDiesAndMoldsMember">Tooling [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ToolsDiesAndMoldsMember" xlink:to="us-gaap_ToolsDiesAndMoldsMember" xlink:title="label: ToolsDiesAndMoldsMember to us-gaap_ToolsDiesAndMoldsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_AssetsCurrent" xml:lang="en-US" id="us-gaap_AssetsCurrent">Total current assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrent" xlink:to="us-gaap_AssetsCurrent" xlink:title="label: AssetsCurrent to us-gaap_AssetsCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsCurrent_lbl1" xml:lang="en-US" id="us-gaap_AssetsCurrent_lbl1">Assets, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl1" xlink:title="label: AssetsCurrent to us-gaap_AssetsCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsCurrentAbstract" xml:lang="en-US" id="us-gaap_AssetsCurrentAbstract">Current assets:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:title="label: AssetsCurrentAbstract to us-gaap_AssetsCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseAbstract" xlink:label="ResearchAndDevelopmentExpenseAbstract" xlink:title="ResearchAndDevelopmentExpenseAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ResearchAndDevelopmentExpenseAbstract" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpenseAbstract">Engineering, design and product development [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpenseAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpenseAbstract" xlink:title="label: ResearchAndDevelopmentExpenseAbstract to us-gaap_ResearchAndDevelopmentExpenseAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1">Research and Development Expense [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpenseAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1" xlink:title="label: ResearchAndDevelopmentExpenseAbstract to us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="TreasuryStockAcquiredAverageCostPerShare" xlink:title="TreasuryStockAcquiredAverageCostPerShare" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_TreasuryStockAcquiredAverageCostPerShare" xml:lang="en-US" id="us-gaap_TreasuryStockAcquiredAverageCostPerShare">Average purchase price of common stock repurchased (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockAcquiredAverageCostPerShare" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:title="label: TreasuryStockAcquiredAverageCostPerShare to us-gaap_TreasuryStockAcquiredAverageCostPerShare" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1" xml:lang="en-US" id="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1">Shares Acquired, Average Cost Per Share</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockAcquiredAverageCostPerShare" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1" xlink:title="label: TreasuryStockAcquiredAverageCostPerShare to us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="UnrecognizedTaxBenefits" xlink:title="UnrecognizedTaxBenefits" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_UnrecognizedTaxBenefits" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefits">Unrecognized tax benefits, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits" xlink:title="label: UnrecognizedTaxBenefits to us-gaap_UnrecognizedTaxBenefits" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_UnrecognizedTaxBenefits1" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefits1">Unrecognized tax benefits, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits1" xlink:title="label: UnrecognizedTaxBenefits to us-gaap_UnrecognizedTaxBenefits1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnrecognizedTaxBenefits_lbl2" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefits_lbl2">Unrecognized Tax Benefits</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits_lbl2" xlink:title="label: UnrecognizedTaxBenefits to us-gaap_UnrecognizedTaxBenefits_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:title="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations">Lapse of statute of limitations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:title="label: UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations to us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1">Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1" xlink:title="label: UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations to us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:title="UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">Reductions for tax positions in prior years</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:title="label: UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions to us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_lbl1" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_lbl1">Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_lbl1" xlink:title="label: UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions to us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:label="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:title="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease">Tax positions taken during the current period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:to="us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:title="label: UnrecognizedTaxBenefitsPeriodIncreaseDecrease to us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:title="ValuationAllowanceOfDeferredTaxAssetsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xml:lang="en-US" id="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">Deferred Income Tax Assets [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:to="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:title="label: ValuationAllowanceOfDeferredTaxAssetsMember to us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_lbl1" xml:lang="en-US" id="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_lbl1">SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:to="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_lbl1" xlink:title="label: ValuationAllowanceOfDeferredTaxAssetsMember to us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="ValuationAllowancesAndReservesBalance" xlink:title="ValuationAllowancesAndReservesBalance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ValuationAllowancesAndReservesBalance" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesBalance">Balance, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesBalance" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance" xlink:title="label: ValuationAllowancesAndReservesBalance to us-gaap_ValuationAllowancesAndReservesBalance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ValuationAllowancesAndReservesBalance1" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesBalance1">Balance, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesBalance" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance1" xlink:title="label: ValuationAllowancesAndReservesBalance to us-gaap_ValuationAllowancesAndReservesBalance1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesBalance_lbl2" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesBalance_lbl2">SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesBalance" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance_lbl2" xlink:title="label: ValuationAllowancesAndReservesBalance to us-gaap_ValuationAllowancesAndReservesBalance_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="ValuationAllowancesAndReservesChargedToCostAndExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense">Additions charged to income tax provision</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="label: ValuationAllowancesAndReservesChargedToCostAndExpense to us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="ValuationAllowancesAndReservesDomain" xlink:title="ValuationAllowancesAndReservesDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesDomain" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesDomain">SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesDomain" xlink:to="us-gaap_ValuationAllowancesAndReservesDomain" xlink:title="label: ValuationAllowancesAndReservesDomain to us-gaap_ValuationAllowancesAndReservesDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="ValuationAllowancesAndReservesTypeAxis" xlink:title="ValuationAllowancesAndReservesTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesTypeAxis" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesTypeAxis">SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesTypeAxis" xlink:to="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:title="label: ValuationAllowancesAndReservesTypeAxis to us-gaap_ValuationAllowancesAndReservesTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">Diluted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="label: WeightedAverageNumberOfDilutedSharesOutstanding to us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1">Diluted: Weighted average common and common equivalent shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1" xlink:title="label: WeightedAverageNumberOfDilutedSharesOutstanding to us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2">Weighted Average Number of Shares Outstanding, Diluted</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2" xlink:title="label: WeightedAverageNumberOfDilutedSharesOutstanding to us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">Basic (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="label: WeightedAverageNumberOfSharesOutstandingBasic to us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1">Basic: Weighted average common shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1" xlink:title="label: WeightedAverageNumberOfSharesOutstandingBasic to us-gaap_WeightedAverageNumberOfSharesOutstandingBasic1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2">Weighted Average Number of Shares Outstanding, Basic</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2" xlink:title="label: WeightedAverageNumberOfSharesOutstandingBasic to us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockMember" xml:lang="en-US" id="us-gaap_CommonStockMember">Common Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockMember" xlink:to="us-gaap_CommonStockMember" xlink:title="label: CommonStockMember to us-gaap_CommonStockMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:title="PropertyPlantAndEquipmentDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">Fixed assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:title="label: PropertyPlantAndEquipmentDisclosureTextBlock to us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1" xlink:title="label: PropertyPlantAndEquipmentDisclosureTextBlock to us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentTypeDomain" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentTypeDomain">Long-Lived Tangible Asset [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:title="label: PropertyPlantAndEquipmentTypeDomain to us-gaap_PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="ResearchAndDevelopmentExpense" xlink:title="ResearchAndDevelopmentExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ResearchAndDevelopmentExpense" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpense">Engineering, design and product development</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense" xlink:title="label: ResearchAndDevelopmentExpense to us-gaap_ResearchAndDevelopmentExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ResearchAndDevelopmentExpense1" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpense1">Research and development expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense1" xlink:title="label: ResearchAndDevelopmentExpense to us-gaap_ResearchAndDevelopmentExpense1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_Assets" xml:lang="en-US" id="us-gaap_Assets">Total assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Assets" xlink:to="us-gaap_Assets" xlink:title="label: Assets to us-gaap_Assets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Assets_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Assets_lbl1" xml:lang="en-US" id="us-gaap_Assets_lbl1">Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Assets" xlink:to="us-gaap_Assets_lbl1" xlink:title="label: Assets to us-gaap_Assets_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="IntangibleAssetsDisclosureTextBlock" xlink:title="IntangibleAssetsDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IntangibleAssetsDisclosureTextBlock" xml:lang="en-US" id="us-gaap_IntangibleAssetsDisclosureTextBlock">Intangible assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:title="label: IntangibleAssetsDisclosureTextBlock to us-gaap_IntangibleAssetsDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1">Intangible Assets Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1" xlink:title="label: IntangibleAssetsDisclosureTextBlock to us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="OtherLiabilitiesCurrent" xlink:title="OtherLiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherLiabilitiesCurrent" xml:lang="en-US" id="us-gaap_OtherLiabilitiesCurrent">Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherLiabilitiesCurrent" xlink:to="us-gaap_OtherLiabilitiesCurrent" xlink:title="label: OtherLiabilitiesCurrent to us-gaap_OtherLiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherLiabilitiesNoncurrent" xml:lang="en-US" id="us-gaap_OtherLiabilitiesNoncurrent">Other liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherLiabilitiesNoncurrent" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:title="label: OtherLiabilitiesNoncurrent to us-gaap_OtherLiabilitiesNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskByBenchmarkAxis" xml:lang="en-US" id="us-gaap_ConcentrationRiskByBenchmarkAxis">Concentration Risk Benchmark [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:title="label: ConcentrationRiskByBenchmarkAxis to us-gaap_ConcentrationRiskByBenchmarkAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskBenchmarkDomain" xml:lang="en-US" id="us-gaap_ConcentrationRiskBenchmarkDomain">Concentration Risk Benchmark [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:title="label: ConcentrationRiskBenchmarkDomain to us-gaap_ConcentrationRiskBenchmarkDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain" xlink:title="IncomeTaxAuthorityDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxAuthorityDomain" xml:lang="en-US" id="us-gaap_IncomeTaxAuthorityDomain">Income Tax Jurisdiction [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxAuthorityDomain" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:title="label: IncomeTaxAuthorityDomain to us-gaap_IncomeTaxAuthorityDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xml:lang="en-US" id="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">Stock incentive plans</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="label: DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock to us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationProfitLossAbstract" xlink:label="SegmentReportingInformationProfitLossAbstract" xlink:title="SegmentReportingInformationProfitLossAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingInformationProfitLossAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SegmentReportingInformationProfitLossAbstract" xml:lang="en-US" id="us-gaap_SegmentReportingInformationProfitLossAbstract">Segment Reporting [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="us-gaap_SegmentReportingInformationProfitLossAbstract" xlink:title="label: SegmentReportingInformationProfitLossAbstract to us-gaap_SegmentReportingInformationProfitLossAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingInformationProfitLossAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingInformationProfitLossAbstract_lbl1" xml:lang="en-US" id="us-gaap_SegmentReportingInformationProfitLossAbstract_lbl1">Segment Reporting Information, Profit (Loss) [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="us-gaap_SegmentReportingInformationProfitLossAbstract_lbl1" xlink:title="label: SegmentReportingInformationProfitLossAbstract to us-gaap_SegmentReportingInformationProfitLossAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementTable" xml:lang="en-US" id="us-gaap_StatementTable">Statement [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementTable" xlink:to="us-gaap_StatementTable" xlink:title="label: StatementTable to us-gaap_StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AntidilutiveSecuritiesNameDomain" xml:lang="en-US" id="us-gaap_AntidilutiveSecuritiesNameDomain">Antidilutive Securities, Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:title="label: AntidilutiveSecuritiesNameDomain to us-gaap_AntidilutiveSecuritiesNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="MovementInValuationAllowancesAndReservesRollForward" xlink:title="MovementInValuationAllowancesAndReservesRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MovementInValuationAllowancesAndReservesRollForward" xml:lang="en-US" id="us-gaap_MovementInValuationAllowancesAndReservesRollForward">Valuation allowance [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:title="label: MovementInValuationAllowancesAndReservesRollForward to us-gaap_MovementInValuationAllowancesAndReservesRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsAbstract" xml:lang="en-US" id="us-gaap_AssetsAbstract">Assets:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsAbstract" xlink:to="us-gaap_AssetsAbstract" xlink:title="label: AssetsAbstract to us-gaap_AssetsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementLineItems" xml:lang="en-US" id="us-gaap_StatementLineItems">Statement [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementLineItems" xlink:to="us-gaap_StatementLineItems" xlink:title="label: StatementLineItems to us-gaap_StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="OperatingLossCarryforwardsTable" xlink:title="OperatingLossCarryforwardsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLossCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLossCarryforwardsTable" xml:lang="en-US" id="us-gaap_OperatingLossCarryforwardsTable">Operating Loss Carryforwards [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsTable" xlink:to="us-gaap_OperatingLossCarryforwardsTable" xlink:title="label: OperatingLossCarryforwardsTable to us-gaap_OperatingLossCarryforwardsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="OperatingLossCarryforwardsLineItems" xlink:title="OperatingLossCarryforwardsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLossCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLossCarryforwardsLineItems" xml:lang="en-US" id="us-gaap_OperatingLossCarryforwardsLineItems">Operating Loss Carryforwards [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_OperatingLossCarryforwardsLineItems" xlink:title="label: OperatingLossCarryforwardsLineItems to us-gaap_OperatingLossCarryforwardsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" xlink:title="EquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EquityAbstract" xml:lang="en-US" id="us-gaap_EquityAbstract">Stock repurchase program [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAbstract" xlink:to="us-gaap_EquityAbstract" xlink:title="label: EquityAbstract to us-gaap_EquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="RisksAndUncertaintiesAbstract" xlink:title="RisksAndUncertaintiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RisksAndUncertaintiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RisksAndUncertaintiesAbstract" xml:lang="en-US" id="us-gaap_RisksAndUncertaintiesAbstract">Concentration of credit risk [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RisksAndUncertaintiesAbstract" xlink:to="us-gaap_RisksAndUncertaintiesAbstract" xlink:title="label: RisksAndUncertaintiesAbstract to us-gaap_RisksAndUncertaintiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RisksAndUncertaintiesAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RisksAndUncertaintiesAbstract_lbl1" xml:lang="en-US" id="us-gaap_RisksAndUncertaintiesAbstract_lbl1">Risks and Uncertainties [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RisksAndUncertaintiesAbstract" xlink:to="us-gaap_RisksAndUncertaintiesAbstract_lbl1" xlink:title="label: RisksAndUncertaintiesAbstract to us-gaap_RisksAndUncertaintiesAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="QuarterlyFinancialInformationTextBlock" xlink:title="QuarterlyFinancialInformationTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_QuarterlyFinancialInformationTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_QuarterlyFinancialInformationTextBlock" xml:lang="en-US" id="us-gaap_QuarterlyFinancialInformationTextBlock">Quarterly results of operations (unaudited)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="QuarterlyFinancialInformationTextBlock" xlink:to="us-gaap_QuarterlyFinancialInformationTextBlock" xlink:title="label: QuarterlyFinancialInformationTextBlock to us-gaap_QuarterlyFinancialInformationTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ClassOfStockDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ClassOfStockDomain" xml:lang="en-US" id="us-gaap_ClassOfStockDomain">Class of Stock [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ClassOfStockDomain" xlink:to="us-gaap_ClassOfStockDomain" xlink:title="label: ClassOfStockDomain to us-gaap_ClassOfStockDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValue" xlink:label="TreasuryStockValue" xlink:title="TreasuryStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockValue" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_TreasuryStockValue" xml:lang="en-US" id="us-gaap_TreasuryStockValue">Treasury stock, 4,044,842 shares, at cost</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockValue" xlink:to="us-gaap_TreasuryStockValue" xlink:title="label: TreasuryStockValue to us-gaap_TreasuryStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockValue_lbl1" xml:lang="en-US" id="us-gaap_TreasuryStockValue_lbl1">Treasury Stock, Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockValue" xlink:to="us-gaap_TreasuryStockValue_lbl1" xlink:title="label: TreasuryStockValue to us-gaap_TreasuryStockValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsNetAbstract" xlink:label="DeferredTaxAssetsNetAbstract" xlink:title="DeferredTaxAssetsNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsNetAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxAssetsNetAbstract" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsNetAbstract">Deferred tax assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="us-gaap_DeferredTaxAssetsNetAbstract" xlink:title="label: DeferredTaxAssetsNetAbstract to us-gaap_DeferredTaxAssetsNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsNetAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsNetAbstract_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsNetAbstract_lbl1">Deferred Tax Assets, Net [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="us-gaap_DeferredTaxAssetsNetAbstract_lbl1" xlink:title="label: DeferredTaxAssetsNetAbstract to us-gaap_DeferredTaxAssetsNetAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="label: IncreaseDecreaseInStockholdersEquityRollForward to us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:label="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="PropertyPlantAndEquipmentNetByTypeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract">Fixed assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="label: PropertyPlantAndEquipmentNetByTypeAbstract to us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1">Property, Plant and Equipment, Net, by Type [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1" xlink:title="label: PropertyPlantAndEquipmentNetByTypeAbstract to us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherAssetsNoncurrent" xml:lang="en-US" id="us-gaap_OtherAssetsNoncurrent">Other assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:title="label: OtherAssetsNoncurrent to us-gaap_OtherAssetsNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="OperatingExpensesAbstract" xlink:title="OperatingExpensesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingExpensesAbstract" xml:lang="en-US" id="us-gaap_OperatingExpensesAbstract">Operating expenses:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpensesAbstract" xlink:title="label: OperatingExpensesAbstract to us-gaap_OperatingExpensesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses" xlink:label="OperatingExpenses" xlink:title="OperatingExpenses" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingExpenses" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_OperatingExpenses" xml:lang="en-US" id="us-gaap_OperatingExpenses">Operating expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingExpenses" xlink:to="us-gaap_OperatingExpenses" xlink:title="label: OperatingExpenses to us-gaap_OperatingExpenses" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingExpenses_lbl1" xml:lang="en-US" id="us-gaap_OperatingExpenses_lbl1">Operating Expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl1" xlink:title="label: OperatingExpenses to us-gaap_OperatingExpenses_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasicAbstract" xlink:label="EarningsPerShareBasicAbstract" xlink:title="EarningsPerShareBasicAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasicAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EarningsPerShareBasicAbstract" xml:lang="en-US" id="us-gaap_EarningsPerShareBasicAbstract">Net (loss) income per common share [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasicAbstract" xlink:to="us-gaap_EarningsPerShareBasicAbstract" xlink:title="label: EarningsPerShareBasicAbstract to us-gaap_EarningsPerShareBasicAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasicAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareBasicAbstract_lbl1" xml:lang="en-US" id="us-gaap_EarningsPerShareBasicAbstract_lbl1">Earnings Per Share, Basic [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasicAbstract" xlink:to="us-gaap_EarningsPerShareBasicAbstract_lbl1" xlink:title="label: EarningsPerShareBasicAbstract to us-gaap_EarningsPerShareBasicAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xml:lang="en-US" id="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract">Shares used in per-share calculation:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="label: EarningsPerShareBasicOtherDisclosuresAbstract to us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareReconciliationAbstract" xlink:label="EarningsPerShareReconciliationAbstract" xlink:title="EarningsPerShareReconciliationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareReconciliationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EarningsPerShareReconciliationAbstract" xml:lang="en-US" id="us-gaap_EarningsPerShareReconciliationAbstract">Earnings per share [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareReconciliationAbstract" xlink:to="us-gaap_EarningsPerShareReconciliationAbstract" xlink:title="label: EarningsPerShareReconciliationAbstract to us-gaap_EarningsPerShareReconciliationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareReconciliationAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareReconciliationAbstract_lbl1" xml:lang="en-US" id="us-gaap_EarningsPerShareReconciliationAbstract_lbl1">Earnings Per Share Reconciliation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareReconciliationAbstract" xlink:to="us-gaap_EarningsPerShareReconciliationAbstract_lbl1" xlink:title="label: EarningsPerShareReconciliationAbstract to us-gaap_EarningsPerShareReconciliationAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xml:lang="en-US" id="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="label: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount to us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xml:lang="en-US" id="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">Antidilutive Securities [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="label: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xml:lang="en-US" id="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="label: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_EarningsPerShareAbstract" xml:lang="en-US" id="us-gaap_EarningsPerShareAbstract">Net (loss) income per common share:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:title="label: EarningsPerShareAbstract to us-gaap_EarningsPerShareAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareAbstract1" xml:lang="en-US" id="us-gaap_EarningsPerShareAbstract1">Earnings per share [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract1" xlink:title="label: EarningsPerShareAbstract to us-gaap_EarningsPerShareAbstract1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xml:lang="en-US" id="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable">Antidilutive Security, Excluded EPS Calculation [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="label: ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable to us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="EarningsPerSharePolicyTextBlock" xlink:title="EarningsPerSharePolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerSharePolicyTextBlock" xml:lang="en-US" id="us-gaap_EarningsPerSharePolicyTextBlock">Net income (loss) per share</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock" xlink:title="label: EarningsPerSharePolicyTextBlock to us-gaap_EarningsPerSharePolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementClassOfStockAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementClassOfStockAxis" xml:lang="en-US" id="us-gaap_StatementClassOfStockAxis">Class of Stock [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis" xlink:title="label: StatementClassOfStockAxis to us-gaap_StatementClassOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xml:lang="en-US" id="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="label: ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable to us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xml:lang="en-US" id="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable">Property, Plant and Equipment [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="label: ScheduleOfPropertyPlantAndEquipmentTable to us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="CommonStockParOrStatedValuePerShare" xlink:title="CommonStockParOrStatedValuePerShare" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockParOrStatedValuePerShare" xml:lang="en-US" id="us-gaap_CommonStockParOrStatedValuePerShare">Common stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" xlink:title="label: CommonStockParOrStatedValuePerShare to us-gaap_CommonStockParOrStatedValuePerShare" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentByTypeAxis">Long-Lived Tangible Asset [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:title="label: PropertyPlantAndEquipmentByTypeAxis to us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentLineItems" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentLineItems">Property, Plant and Equipment [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:title="label: PropertyPlantAndEquipmentLineItems to us-gaap_PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_StockholdersEquity" xml:lang="en-US" id="us-gaap_StockholdersEquity">Total shareholders' equity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_StockholdersEquity1" xml:lang="en-US" id="us-gaap_StockholdersEquity1">Ending balance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity1" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity2" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_StockholdersEquity2" xml:lang="en-US" id="us-gaap_StockholdersEquity2">Beginning balance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity2" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity2" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockholdersEquity_lbl3" xml:lang="en-US" id="us-gaap_StockholdersEquity_lbl3">Equity, Attributable to Parent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl3" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity_lbl3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment">Depreciation and amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="label: DeferredTaxLiabilitiesPropertyPlantAndEquipment to us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1">Deferred Tax Liabilities, Property, Plant and Equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1" xlink:title="label: DeferredTaxLiabilitiesPropertyPlantAndEquipment to us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefit" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit">Income tax expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefit1" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit1">Income tax expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit1" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit2" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefit2" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit2">Income tax benefit (expense)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit2" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit2" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefit3" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit3">Income tax expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit3" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit3" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl4" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxExpenseBenefit_lbl4" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit_lbl4">Income Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl4" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit_lbl4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:label="ForeignCurrencyTransactionGainLossUnrealized" xlink:title="ForeignCurrencyTransactionGainLossUnrealized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionGainLossUnrealized">Foreign currency transaction losses (gains)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionGainLossUnrealized" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:title="label: ForeignCurrencyTransactionGainLossUnrealized to us-gaap_ForeignCurrencyTransactionGainLossUnrealized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl1" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl1">Unrealized Gain (Loss), Foreign Currency Transaction, before Tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionGainLossUnrealized" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl1" xlink:title="label: ForeignCurrencyTransactionGainLossUnrealized to us-gaap_ForeignCurrencyTransactionGainLossUnrealized_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue" xlink:label="PreferredStockValue" xlink:title="PreferredStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PreferredStockValue" xml:lang="en-US" id="us-gaap_PreferredStockValue">Preferred stock</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockValue" xlink:to="us-gaap_PreferredStockValue" xlink:title="label: PreferredStockValue to us-gaap_PreferredStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockValue_lbl1" xml:lang="en-US" id="us-gaap_PreferredStockValue_lbl1">Preferred Stock, Value, Issued</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl1" xlink:title="label: PreferredStockValue to us-gaap_PreferredStockValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember" xlink:label="AccountsReceivableMember" xlink:title="AccountsReceivableMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsReceivableMember" xml:lang="en-US" id="us-gaap_AccountsReceivableMember">Accounts Receivable [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsReceivableMember" xlink:to="us-gaap_AccountsReceivableMember" xlink:title="label: AccountsReceivableMember to us-gaap_AccountsReceivableMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementEquityComponentsAxis" xml:lang="en-US" id="us-gaap_StatementEquityComponentsAxis">Equity Components [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:title="label: StatementEquityComponentsAxis to us-gaap_StatementEquityComponentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdditionalPaidInCapitalMember" xml:lang="en-US" id="us-gaap_AdditionalPaidInCapitalMember">Additional Paid-in Capital [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:title="label: AdditionalPaidInCapitalMember to us-gaap_AdditionalPaidInCapitalMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RetainedEarningsMember" xml:lang="en-US" id="us-gaap_RetainedEarningsMember">Retained Earnings [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember" xlink:title="label: RetainedEarningsMember to us-gaap_RetainedEarningsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xml:lang="en-US" id="us-gaap_AccumulatedOtherComprehensiveIncomeMember">Accumulated Other Comprehensive Income (Loss) [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:title="label: AccumulatedOtherComprehensiveIncomeMember to us-gaap_AccumulatedOtherComprehensiveIncomeMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1" xml:lang="en-US" id="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1">AOCI Attributable to Parent [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1" xlink:title="label: AccumulatedOtherComprehensiveIncomeMember to us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EquityComponentDomain" xml:lang="en-US" id="us-gaap_EquityComponentDomain">Equity Component [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain" xlink:title="label: EquityComponentDomain to us-gaap_EquityComponentDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="CapitalExpendituresIncurredButNotYetPaid" xlink:title="CapitalExpendituresIncurredButNotYetPaid" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xml:lang="en-US" id="us-gaap_CapitalExpendituresIncurredButNotYetPaid">Non-cash capital expenditures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CapitalExpendituresIncurredButNotYetPaid" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:title="label: CapitalExpendituresIncurredButNotYetPaid to us-gaap_CapitalExpendituresIncurredButNotYetPaid" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeStockOptionMember" xml:lang="en-US" id="us-gaap_EmployeeStockOptionMember">Stock Options [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:title="label: EmployeeStockOptionMember to us-gaap_EmployeeStockOptionMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeStockOptionMember1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EmployeeStockOptionMember1" xml:lang="en-US" id="us-gaap_EmployeeStockOptionMember1">Option Awards [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember1" xlink:title="label: EmployeeStockOptionMember to us-gaap_EmployeeStockOptionMember1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InformationTechnologyAndDataProcessing" xlink:label="InformationTechnologyAndDataProcessing" xlink:title="InformationTechnologyAndDataProcessing" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InformationTechnologyAndDataProcessing" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InformationTechnologyAndDataProcessing" xml:lang="en-US" id="us-gaap_InformationTechnologyAndDataProcessing">IT expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InformationTechnologyAndDataProcessing" xlink:to="us-gaap_InformationTechnologyAndDataProcessing" xlink:title="label: InformationTechnologyAndDataProcessing to us-gaap_InformationTechnologyAndDataProcessing" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures">Issuance of common stock on restricted stock units</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:to="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="label: StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures to us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1">Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:to="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1" xlink:title="label: StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures to us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">Issuance of common stock from exercise of stock options</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="label: StockIssuedDuringPeriodValueStockOptionsExercised to us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1">Stock Issued During Period, Value, Stock Options Exercised</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1" xlink:title="label: StockIssuedDuringPeriodValueStockOptionsExercised to us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures">Issuance of common stock on restricted stock units (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="label: StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures to us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1">Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1" xlink:title="label: StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures to us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">Issuance of common stock from exercise of stock options (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="label: StockIssuedDuringPeriodSharesStockOptionsExercised to us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised1">Exercised (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised1" xlink:title="label: StockIssuedDuringPeriodSharesStockOptionsExercised to us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="InventoryFinishedGoodsNetOfReserves" xlink:title="InventoryFinishedGoodsNetOfReserves" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryFinishedGoodsNetOfReserves" xml:lang="en-US" id="us-gaap_InventoryFinishedGoodsNetOfReserves">Finished goods</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryFinishedGoodsNetOfReserves" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:title="label: InventoryFinishedGoodsNetOfReserves to us-gaap_InventoryFinishedGoodsNetOfReserves" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:label="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="InventoryRawMaterialsAndSuppliesNetOfReserves" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xml:lang="en-US" id="us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves">Raw materials and purchased component parts</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:to="us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="label: InventoryRawMaterialsAndSuppliesNetOfReserves to us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFinanceCostsGross" xlink:label="DeferredFinanceCostsGross" xlink:title="DeferredFinanceCostsGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredFinanceCostsGross" xml:lang="en-US" id="us-gaap_DeferredFinanceCostsGross">Deferred financing costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredFinanceCostsGross" xlink:to="us-gaap_DeferredFinanceCostsGross" xlink:title="label: DeferredFinanceCostsGross to us-gaap_DeferredFinanceCostsGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredFinanceCostsGross_lbl1" xml:lang="en-US" id="us-gaap_DeferredFinanceCostsGross_lbl1">Debt Issuance Costs, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredFinanceCostsGross" xlink:to="us-gaap_DeferredFinanceCostsGross_lbl1" xlink:title="label: DeferredFinanceCostsGross to us-gaap_DeferredFinanceCostsGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="StatementBusinessSegmentsAxis" xlink:title="StatementBusinessSegmentsAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementBusinessSegmentsAxis" xml:lang="en-US" id="us-gaap_StatementBusinessSegmentsAxis">Segments [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementBusinessSegmentsAxis" xlink:to="us-gaap_StatementBusinessSegmentsAxis" xlink:title="label: StatementBusinessSegmentsAxis to us-gaap_StatementBusinessSegmentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="StockRepurchasedDuringPeriodValue" xlink:title="StockRepurchasedDuringPeriodValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockRepurchasedDuringPeriodValue" xml:lang="en-US" id="us-gaap_StockRepurchasedDuringPeriodValue">Value of common stock repurchased</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchasedDuringPeriodValue" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" xlink:title="label: StockRepurchasedDuringPeriodValue to us-gaap_StockRepurchasedDuringPeriodValue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="StockRepurchasedDuringPeriodShares" xlink:title="StockRepurchasedDuringPeriodShares" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockRepurchasedDuringPeriodShares" xml:lang="en-US" id="us-gaap_StockRepurchasedDuringPeriodShares">Common stock repurchased (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchasedDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" xlink:title="label: StockRepurchasedDuringPeriodShares to us-gaap_StockRepurchasedDuringPeriodShares" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">Number of Shares [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice">Options vested or expected to vest (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">Options vested and expected to vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">Options vested or expected to vest (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract">Assumptions used in valuation model [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="EarningsPerShareTextBlock" xlink:title="EarningsPerShareTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareTextBlock" xml:lang="en-US" id="us-gaap_EarningsPerShareTextBlock">Earnings per share</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock" xlink:title="label: EarningsPerShareTextBlock to us-gaap_EarningsPerShareTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:title="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract">Shares [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:title="label: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1">Weighted Average Number of Shares Outstanding Reconciliation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1" xlink:title="label: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:label="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:title="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xml:lang="en-US" id="us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract">Accounts receivable and credit losses [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:to="us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:title="label: AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract to us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" xlink:title="LeasesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LeasesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LeasesAbstract" xml:lang="en-US" id="us-gaap_LeasesAbstract">Leases [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LeasesAbstract" xlink:to="us-gaap_LeasesAbstract" xlink:title="label: LeasesAbstract to us-gaap_LeasesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="CommitmentsAndContingencies" xlink:title="CommitmentsAndContingencies" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CommitmentsAndContingencies" xml:lang="en-US" id="us-gaap_CommitmentsAndContingencies">Commitments and contingencies (see Notes 9 and 15)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:title="label: CommitmentsAndContingencies to us-gaap_CommitmentsAndContingencies" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommitmentsAndContingencies_lbl1" xml:lang="en-US" id="us-gaap_CommitmentsAndContingencies_lbl1">Commitments and Contingencies</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl1" xlink:title="label: CommitmentsAndContingencies to us-gaap_CommitmentsAndContingencies_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xml:lang="en-US" id="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">Adjustments to reconcile net (loss) income to net cash provided by operating activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="label: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NatureOfOperations" xlink:label="NatureOfOperations" xlink:title="NatureOfOperations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NatureOfOperations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NatureOfOperations" xml:lang="en-US" id="us-gaap_NatureOfOperations">Description of business</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NatureOfOperations" xlink:to="us-gaap_NatureOfOperations" xlink:title="label: NatureOfOperations to us-gaap_NatureOfOperations" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="AccountsPayableCurrent" xlink:title="AccountsPayableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsPayableCurrent" xml:lang="en-US" id="us-gaap_AccountsPayableCurrent">Accounts payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent" xlink:title="label: AccountsPayableCurrent to us-gaap_AccountsPayableCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccruedLiabilitiesCurrent" xml:lang="en-US" id="us-gaap_AccruedLiabilitiesCurrent">Accrued liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:title="label: AccruedLiabilitiesCurrent to us-gaap_AccruedLiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrent1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_AccruedLiabilitiesCurrent1" xml:lang="en-US" id="us-gaap_AccruedLiabilitiesCurrent1">Accrued liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent1" xlink:title="label: AccruedLiabilitiesCurrent to us-gaap_AccruedLiabilitiesCurrent1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="AccruedProfessionalFeesCurrent" xlink:title="AccruedProfessionalFeesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccruedProfessionalFeesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccruedProfessionalFeesCurrent" xml:lang="en-US" id="us-gaap_AccruedProfessionalFeesCurrent">Professional and consulting</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccruedProfessionalFeesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent" xlink:title="label: AccruedProfessionalFeesCurrent to us-gaap_AccruedProfessionalFeesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="EmployeeRelatedLiabilitiesCurrent" xlink:title="EmployeeRelatedLiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeRelatedLiabilitiesCurrent" xml:lang="en-US" id="us-gaap_EmployeeRelatedLiabilitiesCurrent">Salaries and compensation related</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:title="label: EmployeeRelatedLiabilitiesCurrent to us-gaap_EmployeeRelatedLiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxesPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_TaxesPayableCurrent" xml:lang="en-US" id="us-gaap_TaxesPayableCurrent">Taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxesPayableCurrent" xlink:to="us-gaap_TaxesPayableCurrent" xlink:title="label: TaxesPayableCurrent to us-gaap_TaxesPayableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxesPayableCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TaxesPayableCurrent_lbl1" xml:lang="en-US" id="us-gaap_TaxesPayableCurrent_lbl1">Taxes Payable, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxesPayableCurrent" xlink:to="us-gaap_TaxesPayableCurrent_lbl1" xlink:title="label: TaxesPayableCurrent to us-gaap_TaxesPayableCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xml:lang="en-US" id="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">Share-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="label: AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue to us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xml:lang="en-US" id="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xlink:title="label: AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue to us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xml:lang="en-US" id="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">(Loss) income before income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="label: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xml:lang="en-US" id="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xlink:title="label: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="SegmentDomain" xlink:title="SegmentDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentDomain" xml:lang="en-US" id="us-gaap_SegmentDomain">Segments [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentDomain" xlink:to="us-gaap_SegmentDomain" xlink:title="label: SegmentDomain to us-gaap_SegmentDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MaterialReconcilingItemsMember" xlink:label="MaterialReconcilingItemsMember" xlink:title="MaterialReconcilingItemsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MaterialReconcilingItemsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_MaterialReconcilingItemsMember" xml:lang="en-US" id="us-gaap_MaterialReconcilingItemsMember">Reconciling Item [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MaterialReconcilingItemsMember" xlink:to="us-gaap_MaterialReconcilingItemsMember" xlink:title="label: MaterialReconcilingItemsMember to us-gaap_MaterialReconcilingItemsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MaterialReconcilingItemsMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MaterialReconcilingItemsMember_lbl1" xml:lang="en-US" id="us-gaap_MaterialReconcilingItemsMember_lbl1">Segment Reporting, Reconciling Item, Excluding Corporate Nonsegment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MaterialReconcilingItemsMember" xlink:to="us-gaap_MaterialReconcilingItemsMember_lbl1" xlink:title="label: MaterialReconcilingItemsMember to us-gaap_MaterialReconcilingItemsMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember" xlink:label="OperatingSegmentsMember" xlink:title="OperatingSegmentsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingSegmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingSegmentsMember" xml:lang="en-US" id="us-gaap_OperatingSegmentsMember">Operating Segment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingSegmentsMember" xlink:to="us-gaap_OperatingSegmentsMember" xlink:title="label: OperatingSegmentsMember to us-gaap_OperatingSegmentsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentsGeographicalAreasAbstract" xlink:label="SegmentsGeographicalAreasAbstract" xlink:title="SegmentsGeographicalAreasAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentsGeographicalAreasAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentsGeographicalAreasAbstract" xml:lang="en-US" id="us-gaap_SegmentsGeographicalAreasAbstract">Geographic area information [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentsGeographicalAreasAbstract" xlink:to="us-gaap_SegmentsGeographicalAreasAbstract" xlink:title="label: SegmentsGeographicalAreasAbstract to us-gaap_SegmentsGeographicalAreasAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:label="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:title="GeographicAreasRevenuesFromExternalCustomersAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract" xml:lang="en-US" id="us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract">Geographical area information [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:to="us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:title="label: GeographicAreasRevenuesFromExternalCustomersAbstract to us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract_lbl1" xml:lang="en-US" id="us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract_lbl1">Geographic Areas, Revenues from External Customers [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:to="us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract_lbl1" xlink:title="label: GeographicAreasRevenuesFromExternalCustomersAbstract to us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xml:lang="en-US" id="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="label: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xml:lang="en-US" id="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="label: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities">Accrued liabilities and other liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="label: IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities to us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1">Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1" xlink:title="label: IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities to us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xml:lang="en-US" id="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">Withholding taxes paid on stock issuance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="label: PaymentsRelatedToTaxWithholdingForShareBasedCompensation to us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1" xml:lang="en-US" id="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1">Payment, Tax Withholding, Share-Based Payment Arrangement</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1" xlink:title="label: PaymentsRelatedToTaxWithholdingForShareBasedCompensation to us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xml:lang="en-US" id="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation">Relinquishment of stock awards and deferred stock units to pay withholding taxes (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="label: SharesPaidForTaxWithholdingForShareBasedCompensation to us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1" xml:lang="en-US" id="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1">Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1" xlink:title="label: SharesPaidForTaxWithholdingForShareBasedCompensation to us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xml:lang="en-US" id="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock">Summary of significant accounting policies</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="label: BasisOfPresentationAndSignificantAccountingPoliciesTextBlock to us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1" xml:lang="en-US" id="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1">Basis of Presentation and Significant Accounting Policies [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1" xlink:title="label: BasisOfPresentationAndSignificantAccountingPoliciesTextBlock to us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:label="InterestIncomeExpenseNonoperatingNet" xlink:title="InterestIncomeExpenseNonoperatingNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_InterestIncomeExpenseNonoperatingNet" xml:lang="en-US" id="us-gaap_InterestIncomeExpenseNonoperatingNet">Interest (income) expense, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestIncomeExpenseNonoperatingNet" xlink:to="us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:title="label: InterestIncomeExpenseNonoperatingNet to us-gaap_InterestIncomeExpenseNonoperatingNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNonoperatingNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InterestIncomeExpenseNonoperatingNet_lbl1" xml:lang="en-US" id="us-gaap_InterestIncomeExpenseNonoperatingNet_lbl1">Interest Income (Expense), Nonoperating</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestIncomeExpenseNonoperatingNet" xlink:to="us-gaap_InterestIncomeExpenseNonoperatingNet_lbl1" xlink:title="label: InterestIncomeExpenseNonoperatingNet to us-gaap_InterestIncomeExpenseNonoperatingNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="PayablesAndAccrualsAbstract" xlink:title="PayablesAndAccrualsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PayablesAndAccrualsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PayablesAndAccrualsAbstract" xml:lang="en-US" id="us-gaap_PayablesAndAccrualsAbstract">Accrued liabilities [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PayablesAndAccrualsAbstract" xlink:to="us-gaap_PayablesAndAccrualsAbstract" xlink:title="label: PayablesAndAccrualsAbstract to us-gaap_PayablesAndAccrualsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock">Net Sales and Fixed Assets by Geographic Area</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:title="label: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock to us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:title="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">Deferred Tax Assets and Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:title="label: ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock to us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:title="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">Components of Income Tax Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:title="label: ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock to us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1" xlink:title="label: ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock to us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:title="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">Statutory to Effective Tax Rate Reconciliation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:title="label: ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock to us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1" xlink:title="label: ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock to us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:title="ScheduleOfAccruedLiabilitiesTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">Accrued Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:title="label: ScheduleOfAccruedLiabilitiesTableTextBlock to us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1" xlink:title="label: ScheduleOfAccruedLiabilitiesTableTextBlock to us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="ScheduleOfInventoryCurrentTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfInventoryCurrentTableTextBlock">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:title="label: ScheduleOfInventoryCurrentTableTextBlock to us-gaap_ScheduleOfInventoryCurrentTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xlink:title="label: ScheduleOfInventoryCurrentTableTextBlock to us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxDisclosureAbstract" xml:lang="en-US" id="us-gaap_IncomeTaxDisclosureAbstract">Income taxes [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract" xlink:title="label: IncomeTaxDisclosureAbstract to us-gaap_IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xml:lang="en-US" id="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">Intangible assets, net [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="label: GoodwillAndIntangibleAssetsDisclosureAbstract to us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="SubsequentEventsTextBlock" xlink:title="SubsequentEventsTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SubsequentEventsTextBlock" xml:lang="en-US" id="us-gaap_SubsequentEventsTextBlock">Subsequent events</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock" xlink:title="label: SubsequentEventsTextBlock to us-gaap_SubsequentEventsTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventsTextBlock_lbl1" xml:lang="en-US" id="us-gaap_SubsequentEventsTextBlock_lbl1">Subsequent Events [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl1" xlink:title="label: SubsequentEventsTextBlock to us-gaap_SubsequentEventsTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" xlink:title="InventoryDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryDisclosureAbstract" xml:lang="en-US" id="us-gaap_InventoryDisclosureAbstract">Inventories [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureAbstract" xlink:title="label: InventoryDisclosureAbstract to us-gaap_InventoryDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtDisclosureAbstract" xml:lang="en-US" id="us-gaap_DebtDisclosureAbstract">Borrowings [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract" xlink:title="label: DebtDisclosureAbstract to us-gaap_DebtDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="CompensationAndRetirementDisclosureAbstract" xlink:title="CompensationAndRetirementDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CompensationAndRetirementDisclosureAbstract" xml:lang="en-US" id="us-gaap_CompensationAndRetirementDisclosureAbstract">Retirement savings plan [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:title="label: CompensationAndRetirementDisclosureAbstract to us-gaap_CompensationAndRetirementDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="CompensationAndEmployeeBenefitPlansTextBlock" xlink:title="CompensationAndEmployeeBenefitPlansTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xml:lang="en-US" id="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock">Retirement savings plan</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CompensationAndEmployeeBenefitPlansTextBlock" xlink:to="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:title="label: CompensationAndEmployeeBenefitPlansTextBlock to us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:title="ScheduleOfQuarterlyFinancialInformationTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock">Quarterly Results of Operations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:to="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:title="label: ScheduleOfQuarterlyFinancialInformationTableTextBlock to us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1">Quarterly Financial Information [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:to="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1" xlink:title="label: ScheduleOfQuarterlyFinancialInformationTableTextBlock to us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:label="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:title="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock">Allowance for Expected Credit Losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:title="label: ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock to us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1">Financing Receivable, Current, Allowance for Credit Loss [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1" xlink:title="label: ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock to us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock">Equity Awards Vested and Expected to Vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:title="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">Stock Option Activity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:title="label: ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock to us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:title="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">Assumptions Used in Option Valuation Calculations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:title="label: ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock to us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockTextBlock" xlink:label="TreasuryStockTextBlock" xlink:title="TreasuryStockTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockTextBlock" xml:lang="en-US" id="us-gaap_TreasuryStockTextBlock">Stock repurchase program</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockTextBlock" xlink:to="us-gaap_TreasuryStockTextBlock" xlink:title="label: TreasuryStockTextBlock to us-gaap_TreasuryStockTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="QuarterlyFinancialInformationDisclosureAbstract" xlink:title="QuarterlyFinancialInformationDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xml:lang="en-US" id="us-gaap_QuarterlyFinancialInformationDisclosureAbstract">Quarterly results of operations (unaudited) [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:title="label: QuarterlyFinancialInformationDisclosureAbstract to us-gaap_QuarterlyFinancialInformationDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xml:lang="en-US" id="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">Stock incentive plans [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="label: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates" xlink:label="UseOfEstimates" xlink:title="UseOfEstimates" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UseOfEstimates" xml:lang="en-US" id="us-gaap_UseOfEstimates">Use of estimates</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UseOfEstimates" xlink:to="us-gaap_UseOfEstimates" xlink:title="label: UseOfEstimates to us-gaap_UseOfEstimates" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage">Percentage fee on unused borrowings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="label: LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage to us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1" xlink:title="label: LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage to us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RestrictedStockUnitsRSUMember" xml:lang="en-US" id="us-gaap_RestrictedStockUnitsRSUMember">Restricted Share Units [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:title="label: RestrictedStockUnitsRSUMember to us-gaap_RestrictedStockUnitsRSUMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:label="GoodwillAndIntangibleAssetImpairment" xlink:title="GoodwillAndIntangibleAssetImpairment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_GoodwillAndIntangibleAssetImpairment" xml:lang="en-US" id="us-gaap_GoodwillAndIntangibleAssetImpairment">Impairment of goodwill and intangible assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GoodwillAndIntangibleAssetImpairment" xlink:to="us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:title="label: GoodwillAndIntangibleAssetImpairment to us-gaap_GoodwillAndIntangibleAssetImpairment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1" xml:lang="en-US" id="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1">Goodwill and Intangible Asset Impairment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GoodwillAndIntangibleAssetImpairment" xlink:to="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1" xlink:title="label: GoodwillAndIntangibleAssetImpairment to us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidTaxes" xlink:label="IncreaseDecreaseInPrepaidTaxes" xlink:title="IncreaseDecreaseInPrepaidTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidTaxes" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInPrepaidTaxes" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInPrepaidTaxes">Prepaid income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInPrepaidTaxes" xlink:to="us-gaap_IncreaseDecreaseInPrepaidTaxes" xlink:title="label: IncreaseDecreaseInPrepaidTaxes to us-gaap_IncreaseDecreaseInPrepaidTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1">Increase (Decrease) in Prepaid Taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInPrepaidTaxes" xlink:to="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1" xlink:title="label: IncreaseDecreaseInPrepaidTaxes to us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountingPoliciesAbstract" xml:lang="en-US" id="us-gaap_AccountingPoliciesAbstract">Summary of significant accounting policies [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:title="label: AccountingPoliciesAbstract to us-gaap_AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingAbstract" xml:lang="en-US" id="us-gaap_SegmentReportingAbstract">Segment reporting [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract" xlink:title="label: SegmentReportingAbstract to us-gaap_SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="RelatedPartyTransactionsAbstract" xlink:title="RelatedPartyTransactionsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RelatedPartyTransactionsAbstract" xml:lang="en-US" id="us-gaap_RelatedPartyTransactionsAbstract">Related party transactions [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RelatedPartyTransactionsAbstract" xlink:to="us-gaap_RelatedPartyTransactionsAbstract" xlink:title="label: RelatedPartyTransactionsAbstract to us-gaap_RelatedPartyTransactionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="SubsequentEventsAbstract" xlink:title="SubsequentEventsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventsAbstract" xml:lang="en-US" id="us-gaap_SubsequentEventsAbstract">Subsequent events [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract" xlink:title="label: SubsequentEventsAbstract to us-gaap_SubsequentEventsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="IncomeTaxAuthorityAxis" xlink:title="IncomeTaxAuthorityAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxAuthorityAxis" xml:lang="en-US" id="us-gaap_IncomeTaxAuthorityAxis">Income Tax Jurisdiction [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:title="label: IncomeTaxAuthorityAxis to us-gaap_IncomeTaxAuthorityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:label="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xml:lang="en-US" id="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited">Relinquishment of stock awards and deferred stock units to pay withholding taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:to="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="label: StockGrantedDuringPeriodValueSharebasedCompensationForfeited to us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1" xml:lang="en-US" id="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1">Shares Granted, Value, Share-Based Payment Arrangement, Forfeited</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:to="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1" xlink:title="label: StockGrantedDuringPeriodValueSharebasedCompensationForfeited to us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">Granted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">Earnings per Share</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="label: ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock to us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1" xlink:title="label: ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock to us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">Options exercisable, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:label="DefinedContributionPlanEmployerMatchingContributionPercent" xlink:title="DefinedContributionPlanEmployerMatchingContributionPercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xml:lang="en-US" id="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent">Employee's contribution percentage for match</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DefinedContributionPlanEmployerMatchingContributionPercent" xlink:to="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:title="label: DefinedContributionPlanEmployerMatchingContributionPercent to us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">Identifiable Intangible Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:title="label: ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock to us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xml:lang="en-US" id="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable">Intangible Asset, Finite-Lived [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="label: ScheduleOfFiniteLivedIntangibleAssetsTable to us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward">Number of Units [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">Outstanding, beginning of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber1">Outstanding, end of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted">Granted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Granted</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised">Exercised (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures">Forfeited (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Forfeitures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations">Expired (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Expirations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesNetAbstract" xlink:label="DeferredTaxLiabilitiesNetAbstract" xlink:title="DeferredTaxLiabilitiesNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesNetAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxLiabilitiesNetAbstract" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesNetAbstract">Deferred tax liabilities [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesNetAbstract" xlink:to="us-gaap_DeferredTaxLiabilitiesNetAbstract" xlink:title="label: DeferredTaxLiabilitiesNetAbstract to us-gaap_DeferredTaxLiabilitiesNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">Weighted Average Grant Stock Price [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">Forfeited (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">Unrecognized compensation cost related to stock options</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1">Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:label="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:title="AllowanceForDoubtfulAccountsReceivableRollforward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward">Allowances for expected credit losses [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:title="label: AllowanceForDoubtfulAccountsReceivableRollforward to us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">Weighted Average Exercise Price [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">Granted (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">Exercised (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice">Forfeited (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice">Expired (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember" xlink:label="PerformanceSharesMember" xlink:title="PerformanceSharesMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PerformanceSharesMember" xml:lang="en-US" id="us-gaap_PerformanceSharesMember">Performance Stock Awards [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PerformanceSharesMember" xlink:to="us-gaap_PerformanceSharesMember" xlink:title="label: PerformanceSharesMember to us-gaap_PerformanceSharesMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PerformanceSharesMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PerformanceSharesMember_lbl1" xml:lang="en-US" id="us-gaap_PerformanceSharesMember_lbl1">Performance Shares [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PerformanceSharesMember" xlink:to="us-gaap_PerformanceSharesMember_lbl1" xlink:title="label: PerformanceSharesMember to us-gaap_PerformanceSharesMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms">Restricted stock units vested and expected to vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Outstanding, Weighted Average Remaining Contractual Terms</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PlanNameAxis" xml:lang="en-US" id="us-gaap_PlanNameAxis">Plan Name [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PlanNameAxis" xlink:to="us-gaap_PlanNameAxis" xlink:title="label: PlanNameAxis to us-gaap_PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PlanNameDomain" xml:lang="en-US" id="us-gaap_PlanNameDomain">Plan Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PlanNameDomain" xlink:to="us-gaap_PlanNameDomain" xlink:title="label: PlanNameDomain to us-gaap_PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AwardTypeAxis" xml:lang="en-US" id="us-gaap_AwardTypeAxis">Award Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis" xlink:title="label: AwardTypeAxis to us-gaap_AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="IncomeStatementLocationAxis" xlink:title="IncomeStatementLocationAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeStatementLocationAxis" xml:lang="en-US" id="us-gaap_IncomeStatementLocationAxis">Statement of Income Location, Balance [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:title="label: IncomeStatementLocationAxis to us-gaap_IncomeStatementLocationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain" xlink:title="IncomeStatementLocationDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeStatementLocationDomain" xml:lang="en-US" id="us-gaap_IncomeStatementLocationDomain">Statement of Income Location, Balance [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:title="label: IncomeStatementLocationDomain to us-gaap_IncomeStatementLocationDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:title="NewAccountingPronouncementsPolicyPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xml:lang="en-US" id="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">Recently issued accounting pronouncements</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:title="label: NewAccountingPronouncementsPolicyPolicyTextBlock to us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="ConcentrationRiskCreditRisk" xlink:title="ConcentrationRiskCreditRisk" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskCreditRisk" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskCreditRisk" xml:lang="en-US" id="us-gaap_ConcentrationRiskCreditRisk">Concentration of credit risk</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk" xlink:title="label: ConcentrationRiskCreditRisk to us-gaap_ConcentrationRiskCreditRisk" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentUsefulLife" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentUsefulLife">Estimated useful life</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:title="label: PropertyPlantAndEquipmentUsefulLife to us-gaap_PropertyPlantAndEquipmentUsefulLife" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">Options exercisable, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">Options vested and expected to vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">Expected option term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">Vesting period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">Weighted average period to recognize compensation cost not yet recognized</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NumberOfOperatingSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NumberOfOperatingSegments" xml:lang="en-US" id="us-gaap_NumberOfOperatingSegments">Number of operating segments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfOperatingSegments" xlink:to="us-gaap_NumberOfOperatingSegments" xlink:title="label: NumberOfOperatingSegments to us-gaap_NumberOfOperatingSegments" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:title="ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xml:lang="en-US" id="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">Unrecognized Tax Benefits</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:title="label: ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock to us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl1">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl1" xlink:title="label: ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock to us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ConcentrationRiskPercentage1" xml:lang="en-US" id="us-gaap_ConcentrationRiskPercentage1">Concentration risk percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1" xlink:title="label: ConcentrationRiskPercentage1 to us-gaap_ConcentrationRiskPercentage1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskPercentage1_lbl1" xml:lang="en-US" id="us-gaap_ConcentrationRiskPercentage1_lbl1">Concentration Risk, Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl1" xlink:title="label: ConcentrationRiskPercentage1 to us-gaap_ConcentrationRiskPercentage1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xml:lang="en-US" id="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">Foreign currency translation adjustment, net of tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="label: OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax to us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax1" xml:lang="en-US" id="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax1">Foreign currency translation adjustment, net of tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax1" xlink:title="label: OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax to us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="DebtInstrumentBasisSpreadOnVariableRate1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xml:lang="en-US" id="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1">Basis spread on variable rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="label: DebtInstrumentBasisSpreadOnVariableRate1 to us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SalesRevenueNetMember" xml:lang="en-US" id="us-gaap_SalesRevenueNetMember">Sales [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember" xlink:title="label: SalesRevenueNetMember to us-gaap_SalesRevenueNetMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeveranceCosts1" xlink:label="SeveranceCosts1" xlink:title="SeveranceCosts1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SeveranceCosts1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SeveranceCosts1" xml:lang="en-US" id="us-gaap_SeveranceCosts1">Severance expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SeveranceCosts1" xlink:to="us-gaap_SeveranceCosts1" xlink:title="label: SeveranceCosts1 to us-gaap_SeveranceCosts1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1">Fair value of all awards vested</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested in Period, Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:title="AllowanceForDoubtfulAccountsReceivableWriteOffs" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs">Deductions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:title="label: AllowanceForDoubtfulAccountsReceivableWriteOffs to us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1">Accounts Receivable, Allowance for Credit Loss, Writeoff</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1" xlink:title="label: AllowanceForDoubtfulAccountsReceivableWriteOffs to us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">Term of award</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="TechnologyBasedIntangibleAssetsMember" xlink:title="TechnologyBasedIntangibleAssetsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TechnologyBasedIntangibleAssetsMember" xml:lang="en-US" id="us-gaap_TechnologyBasedIntangibleAssetsMember">Purchased Technology [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TechnologyBasedIntangibleAssetsMember" xlink:to="us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:title="label: TechnologyBasedIntangibleAssetsMember to us-gaap_TechnologyBasedIntangibleAssetsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested">Restricted stock units vested and expected to vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:label="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:title="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xml:lang="en-US" id="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch">Employer matching contribution percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:to="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:title="label: DefinedContributionPlanEmployerMatchingContributionPercentOfMatch to us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue">Weighted average fair value of grants (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="VariableRateAxis" xlink:title="VariableRateAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_VariableRateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_VariableRateAxis" xml:lang="en-US" id="us-gaap_VariableRateAxis">Variable Rate [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="VariableRateAxis" xlink:to="us-gaap_VariableRateAxis" xlink:title="label: VariableRateAxis to us-gaap_VariableRateAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain" xlink:title="VariableRateDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_VariableRateDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_VariableRateDomain" xml:lang="en-US" id="us-gaap_VariableRateDomain">Variable Rate [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="VariableRateDomain" xlink:to="us-gaap_VariableRateDomain" xlink:title="label: VariableRateDomain to us-gaap_VariableRateDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrimeRateMember" xlink:label="PrimeRateMember" xlink:title="PrimeRateMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PrimeRateMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PrimeRateMember" xml:lang="en-US" id="us-gaap_PrimeRateMember">Prime Rate [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PrimeRateMember" xlink:to="us-gaap_PrimeRateMember" xlink:title="label: PrimeRateMember to us-gaap_PrimeRateMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FederalFundsEffectiveSwapRateMember" xlink:label="FederalFundsEffectiveSwapRateMember" xlink:title="FederalFundsEffectiveSwapRateMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FederalFundsEffectiveSwapRateMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_FederalFundsEffectiveSwapRateMember" xml:lang="en-US" id="us-gaap_FederalFundsEffectiveSwapRateMember">Federal Funds Rate [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FederalFundsEffectiveSwapRateMember" xlink:to="us-gaap_FederalFundsEffectiveSwapRateMember" xlink:title="label: FederalFundsEffectiveSwapRateMember to us-gaap_FederalFundsEffectiveSwapRateMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FederalFundsEffectiveSwapRateMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FederalFundsEffectiveSwapRateMember_lbl1" xml:lang="en-US" id="us-gaap_FederalFundsEffectiveSwapRateMember_lbl1">Fed Funds Effective Rate Overnight Index Swap Rate [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FederalFundsEffectiveSwapRateMember" xlink:to="us-gaap_FederalFundsEffectiveSwapRateMember_lbl1" xlink:title="label: FederalFundsEffectiveSwapRateMember to us-gaap_FederalFundsEffectiveSwapRateMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredIncomeTaxAssetsNet" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxAssetsNet">Deferred tax assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" xlink:title="label: DeferredIncomeTaxAssetsNet to us-gaap_DeferredIncomeTaxAssetsNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxAssetsNet_lbl1">Deferred Income Tax Assets, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xlink:title="label: DeferredIncomeTaxAssetsNet to us-gaap_DeferredIncomeTaxAssetsNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="TreasuryStockCommonMember" xlink:title="TreasuryStockCommonMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockCommonMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockCommonMember" xml:lang="en-US" id="us-gaap_TreasuryStockCommonMember">Treasury Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockCommonMember" xlink:to="us-gaap_TreasuryStockCommonMember" xlink:title="label: TreasuryStockCommonMember to us-gaap_TreasuryStockCommonMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="TreasuryStockCommonShares" xlink:title="TreasuryStockCommonShares" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockCommonShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockCommonShares" xml:lang="en-US" id="us-gaap_TreasuryStockCommonShares">Treasury stock (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockCommonShares" xlink:to="us-gaap_TreasuryStockCommonShares" xlink:title="label: TreasuryStockCommonShares to us-gaap_TreasuryStockCommonShares" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueAbstract" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueAbstract">Disaggregation of revenue [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueAbstract" xlink:to="us-gaap_DisaggregationOfRevenueAbstract" xlink:title="label: DisaggregationOfRevenueAbstract to us-gaap_DisaggregationOfRevenueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="DisaggregationOfRevenueTableTextBlock" xlink:title="DisaggregationOfRevenueTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DisaggregationOfRevenueTableTextBlock" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueTableTextBlock">Disaggregation of Revenue</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:title="label: DisaggregationOfRevenueTableTextBlock to us-gaap_DisaggregationOfRevenueTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1" xlink:title="label: DisaggregationOfRevenueTableTextBlock to us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueTable" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueTable">Disaggregation of Revenue [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueTable" xlink:title="label: DisaggregationOfRevenueTable to us-gaap_DisaggregationOfRevenueTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueLineItems" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueLineItems">Disaggregation of Revenue [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" xlink:title="label: DisaggregationOfRevenueLineItems to us-gaap_DisaggregationOfRevenueLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="RevenueRemainingPerformanceObligation" xlink:title="RevenueRemainingPerformanceObligation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RevenueRemainingPerformanceObligation" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligation">Remaining performance obligations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" xlink:title="label: RevenueRemainingPerformanceObligation to us-gaap_RevenueRemainingPerformanceObligation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligation_lbl1" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligation_lbl1">Revenue, Remaining Performance Obligation, Amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl1" xlink:title="label: RevenueRemainingPerformanceObligation to us-gaap_RevenueRemainingPerformanceObligation_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="ContractWithCustomerAssetNetCurrent" xlink:title="ContractWithCustomerAssetNetCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerAssetNetCurrent" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetNetCurrent">Unbilled receivables, current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetNetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:title="label: ContractWithCustomerAssetNetCurrent to us-gaap_ContractWithCustomerAssetNetCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerAssetNetCurrent_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetNetCurrent_lbl1">Contract with Customer, Asset, after Allowance for Credit Loss, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetNetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_lbl1" xlink:title="label: ContractWithCustomerAssetNetCurrent to us-gaap_ContractWithCustomerAssetNetCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetNoncurrent" xlink:label="ContractWithCustomerAssetNetNoncurrent" xlink:title="ContractWithCustomerAssetNetNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerAssetNetNoncurrent" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetNetNoncurrent">Unbilled receivables, non-current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetNetNoncurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetNoncurrent" xlink:title="label: ContractWithCustomerAssetNetNoncurrent to us-gaap_ContractWithCustomerAssetNetNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1">Contract with Customer, Asset, after Allowance for Credit Loss, Noncurrent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetNetNoncurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1" xlink:title="label: ContractWithCustomerAssetNetNoncurrent to us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityAbstract" xlink:label="ContractWithCustomerAssetAndLiabilityAbstract" xlink:title="ContractWithCustomerAssetAndLiabilityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerAssetAndLiabilityAbstract" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetAndLiabilityAbstract">Net contract (liabilities) assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetAndLiabilityAbstract" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityAbstract" xlink:title="label: ContractWithCustomerAssetAndLiabilityAbstract to us-gaap_ContractWithCustomerAssetAndLiabilityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerAssetAndLiabilityAbstract_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetAndLiabilityAbstract_lbl1">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetAndLiabilityAbstract" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityAbstract_lbl1" xlink:title="label: ContractWithCustomerAssetAndLiabilityAbstract to us-gaap_ContractWithCustomerAssetAndLiabilityAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuePerformanceObligationAbstract" xlink:label="RevenuePerformanceObligationAbstract" xlink:title="RevenuePerformanceObligationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenuePerformanceObligationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RevenuePerformanceObligationAbstract" xml:lang="en-US" id="us-gaap_RevenuePerformanceObligationAbstract">Remaining performance obligations [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenuePerformanceObligationAbstract" xlink:to="us-gaap_RevenuePerformanceObligationAbstract" xlink:title="label: RevenuePerformanceObligationAbstract to us-gaap_RevenuePerformanceObligationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenuePerformanceObligationAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenuePerformanceObligationAbstract_lbl1" xml:lang="en-US" id="us-gaap_RevenuePerformanceObligationAbstract_lbl1">Revenue, Performance Obligation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenuePerformanceObligationAbstract" xlink:to="us-gaap_RevenuePerformanceObligationAbstract_lbl1" xlink:title="label: RevenuePerformanceObligationAbstract to us-gaap_RevenuePerformanceObligationAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="AssetsAndLiabilitiesLesseeAbstract" xlink:title="AssetsAndLiabilitiesLesseeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AssetsAndLiabilitiesLesseeAbstract" xml:lang="en-US" id="us-gaap_AssetsAndLiabilitiesLesseeAbstract">Leases [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:title="label: AssetsAndLiabilitiesLesseeAbstract to us-gaap_AssetsAndLiabilitiesLesseeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1" xml:lang="en-US" id="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1">Assets and Liabilities, Lessee [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1" xlink:title="label: AssetsAndLiabilitiesLesseeAbstract to us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashFlowOperatingActivitiesLesseeAbstract" xlink:label="CashFlowOperatingActivitiesLesseeAbstract" xlink:title="CashFlowOperatingActivitiesLesseeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashFlowOperatingActivitiesLesseeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CashFlowOperatingActivitiesLesseeAbstract" xml:lang="en-US" id="us-gaap_CashFlowOperatingActivitiesLesseeAbstract">Cash flows related to operating leases [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashFlowOperatingActivitiesLesseeAbstract" xlink:to="us-gaap_CashFlowOperatingActivitiesLesseeAbstract" xlink:title="label: CashFlowOperatingActivitiesLesseeAbstract to us-gaap_CashFlowOperatingActivitiesLesseeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1" xml:lang="en-US" id="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1">Cash Flow, Operating Activities, Lessee [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashFlowOperatingActivitiesLesseeAbstract" xlink:to="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1" xlink:title="label: CashFlowOperatingActivitiesLesseeAbstract to us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerLiabilityCurrent" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityCurrent">Deferred revenue</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:title="label: ContractWithCustomerLiabilityCurrent to us-gaap_ContractWithCustomerLiabilityCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ContractWithCustomerLiabilityCurrent1" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityCurrent1">Deferred revenue, current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent1" xlink:title="label: ContractWithCustomerLiabilityCurrent to us-gaap_ContractWithCustomerLiabilityCurrent1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerLiabilityNoncurrent" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityNoncurrent">Deferred revenue, net of current portion</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:title="label: ContractWithCustomerLiabilityNoncurrent to us-gaap_ContractWithCustomerLiabilityNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ContractWithCustomerLiabilityNoncurrent1" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityNoncurrent1">Deferred revenue, non-current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent1" xlink:title="label: ContractWithCustomerLiabilityNoncurrent to us-gaap_ContractWithCustomerLiabilityNoncurrent1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseRightOfUseAsset" xml:lang="en-US" id="us-gaap_OperatingLeaseRightOfUseAsset">Right-of-use assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:title="label: OperatingLeaseRightOfUseAsset to us-gaap_OperatingLeaseRightOfUseAsset" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseRightOfUseAsset_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseRightOfUseAsset_lbl1">Operating Lease, Right-of-Use Asset</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl1" xlink:title="label: OperatingLeaseRightOfUseAsset to us-gaap_OperatingLeaseRightOfUseAsset_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:title="OperatingLeaseLiabilitiesPaymentsDueAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract">Maturity of operating lease liabilities [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:title="label: OperatingLeaseLiabilitiesPaymentsDueAbstract to us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1">Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1" xlink:title="label: OperatingLeaseLiabilitiesPaymentsDueAbstract to us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">Net sales</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="label: RevenueFromContractWithCustomerExcludingAssessedTax to us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1">Sales revenue</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1" xlink:title="label: RevenueFromContractWithCustomerExcludingAssessedTax to us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax2" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax2" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax2">Revenues</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax2" xlink:title="label: RevenueFromContractWithCustomerExcludingAssessedTax to us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="LesseeLeaseDescriptionTable" xlink:title="LesseeLeaseDescriptionTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeLeaseDescriptionTable" xml:lang="en-US" id="us-gaap_LesseeLeaseDescriptionTable">Lessee, Lease, Description [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionTable" xlink:title="label: LesseeLeaseDescriptionTable to us-gaap_LesseeLeaseDescriptionTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="LesseeLeaseDescriptionLineItems" xlink:title="LesseeLeaseDescriptionLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeLeaseDescriptionLineItems" xml:lang="en-US" id="us-gaap_LesseeLeaseDescriptionLineItems">Lessee, Lease, Description [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems" xlink:title="label: LesseeLeaseDescriptionLineItems to us-gaap_LesseeLeaseDescriptionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseDescriptionAbstract" xlink:label="LesseeOperatingLeaseDescriptionAbstract" xlink:title="LesseeOperatingLeaseDescriptionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseDescriptionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseDescriptionAbstract" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseDescriptionAbstract">Operating lease weighted average remaining lease term and discount rate [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseDescriptionAbstract" xlink:to="us-gaap_LesseeOperatingLeaseDescriptionAbstract" xlink:title="label: LesseeOperatingLeaseDescriptionAbstract to us-gaap_LesseeOperatingLeaseDescriptionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1">Lessee, Operating Lease, Description [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseDescriptionAbstract" xlink:to="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1" xlink:title="label: LesseeOperatingLeaseDescriptionAbstract to us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xml:lang="en-US" id="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">Effect of exchange rate changes on cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="label: EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">Increase in cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">Cash and cash equivalents, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1">Cash and cash equivalents, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments" xlink:label="OperatingLeasePayments" xlink:title="OperatingLeasePayments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeasePayments" xml:lang="en-US" id="us-gaap_OperatingLeasePayments">Operating cash outflows from leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments" xlink:title="label: OperatingLeasePayments to us-gaap_OperatingLeasePayments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeasePayments_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeasePayments_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeasePayments_lbl1">Operating Lease, Payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl1" xlink:title="label: OperatingLeasePayments to us-gaap_OperatingLeasePayments_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:title="OperatingLeaseWeightedAverageDiscountRatePercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xml:lang="en-US" id="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">Weighted average discount rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:title="label: OperatingLeaseWeightedAverageDiscountRatePercent to us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1" xlink:title="label: OperatingLeaseWeightedAverageDiscountRatePercent to us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">Total undiscounted lease payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDue to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1">Lessee, Operating Lease, Liability, to be Paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDue to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">2025</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions">Excess tax benefit in provision for income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="label: EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions to us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">2026</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearTwo to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearTwo to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:title="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">Maturity of Operating Lease Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:title="label: LesseeOperatingLeaseLiabilityMaturityTableTextBlock to us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityMaturityTableTextBlock to us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense" xlink:label="OperatingLeaseExpense" xlink:title="OperatingLeaseExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseExpense" xml:lang="en-US" id="us-gaap_OperatingLeaseExpense">Operating lease expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseExpense" xlink:to="us-gaap_OperatingLeaseExpense" xlink:title="label: OperatingLeaseExpense to us-gaap_OperatingLeaseExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseExpense_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseExpense_lbl1">Operating Lease, Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseExpense" xlink:to="us-gaap_OperatingLeaseExpense_lbl1" xlink:title="label: OperatingLeaseExpense to us-gaap_OperatingLeaseExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="OperatingLeaseLiability" xlink:title="OperatingLeaseLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseLiability" xml:lang="en-US" id="us-gaap_OperatingLeaseLiability">Total lease liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability" xlink:title="label: OperatingLeaseLiability to us-gaap_OperatingLeaseLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiability_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseLiability_lbl1">Operating Lease, Liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl1" xlink:title="label: OperatingLeaseLiability to us-gaap_OperatingLeaseLiability_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiabilityCurrent" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilityCurrent">Lease liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:title="label: OperatingLeaseLiabilityCurrent to us-gaap_OperatingLeaseLiabilityCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">Less imputed interest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="label: LesseeOperatingLeaseLiabilityUndiscountedExcessAmount to us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiabilityNoncurrent" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilityNoncurrent">Lease liabilities, net of current portion</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:title="label: OperatingLeaseLiabilityNoncurrent to us-gaap_OperatingLeaseLiabilityNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:title="ContractWithCustomerAssetAndLiabilityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">Net Contract (Liabilities) Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:title="label: ContractWithCustomerAssetAndLiabilityTableTextBlock to us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1" xlink:title="label: ContractWithCustomerAssetAndLiabilityTableTextBlock to us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="LesseeLeasesPolicyTextBlock" xlink:title="LesseeLeasesPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeLeasesPolicyTextBlock" xml:lang="en-US" id="us-gaap_LesseeLeasesPolicyTextBlock">Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock" xlink:title="label: LesseeLeasesPolicyTextBlock to us-gaap_LesseeLeasesPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="LesseeOperatingLeasesTextBlock" xlink:title="LesseeOperatingLeasesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeasesTextBlock" xml:lang="en-US" id="us-gaap_LesseeOperatingLeasesTextBlock">Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" xlink:title="label: LesseeOperatingLeasesTextBlock to us-gaap_LesseeOperatingLeasesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeasesTextBlock_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeasesTextBlock_lbl1">Lessee, Operating Leases [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl1" xlink:title="label: LesseeOperatingLeasesTextBlock to us-gaap_LesseeOperatingLeasesTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:title="OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xml:lang="en-US" id="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">Weighted average remaining lease term (in years)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:title="label: OperatingLeaseWeightedAverageRemainingLeaseTerm1 to us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1">Operating Lease, Weighted Average Remaining Lease Term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1" xlink:title="label: OperatingLeaseWeightedAverageRemainingLeaseTerm1 to us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">Expected timing of satisfaction, period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">Stock award excess tax benefit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="label: EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent to us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1">Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent to us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="RevenueFromContractWithCustomerPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">Revenue recognition</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="label: RevenueFromContractWithCustomerPolicyTextBlock to us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostDirectMaterial" xlink:label="CostDirectMaterial" xlink:title="CostDirectMaterial" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CostDirectMaterial" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CostDirectMaterial" xml:lang="en-US" id="us-gaap_CostDirectMaterial">Cost of materials sold</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CostDirectMaterial" xlink:to="us-gaap_CostDirectMaterial" xlink:title="label: CostDirectMaterial to us-gaap_CostDirectMaterial" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:label="CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:title="CompensationExpenseExcludingCostOfGoodAndServiceSold" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold" xml:lang="en-US" id="us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold">Compensation costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:to="us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:title="label: CompensationExpenseExcludingCostOfGoodAndServiceSold to us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="LesseeOperatingLeaseRemainingLeaseTerm" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm">Remaining lease terms</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseRemainingLeaseTerm" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="label: LesseeOperatingLeaseRemainingLeaseTerm to us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1">Lessee, Operating Lease, Remaining Lease Term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseRemainingLeaseTerm" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1" xlink:title="label: LesseeOperatingLeaseRemainingLeaseTerm to us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingLeaseLiability">Increase in operating lease liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseLiability" xlink:to="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:title="label: IncreaseDecreaseInOperatingLeaseLiability to us-gaap_IncreaseDecreaseInOperatingLeaseLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1">Increase (Decrease) in Operating Lease Liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseLiability" xlink:to="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xlink:title="label: IncreaseDecreaseInOperatingLeaseLiability to us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:label="EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:title="EffectiveIncomeTaxRateReconciliationFdiiPercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent">Foreign-derived intangible income deduction</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:title="label: EffectiveIncomeTaxRateReconciliationFdiiPercent to us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent_lbl1">Effective Income Tax Rate Reconciliation, FDII, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationFdiiPercent to us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember" xlink:label="RelatedPartyMember" xlink:title="RelatedPartyMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RelatedPartyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RelatedPartyMember" xml:lang="en-US" id="us-gaap_RelatedPartyMember">Related Party [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RelatedPartyMember" xlink:to="us-gaap_RelatedPartyMember" xlink:title="label: RelatedPartyMember to us-gaap_RelatedPartyMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingOtherItemCompositionDescription" xlink:label="SegmentReportingOtherItemCompositionDescription" xlink:title="SegmentReportingOtherItemCompositionDescription" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingOtherItemCompositionDescription" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingOtherItemCompositionDescription" xml:lang="en-US" id="us-gaap_SegmentReportingOtherItemCompositionDescription">Segment reporting, other segment item, composition, description</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingOtherItemCompositionDescription" xlink:to="us-gaap_SegmentReportingOtherItemCompositionDescription" xlink:title="label: SegmentReportingOtherItemCompositionDescription to us-gaap_SegmentReportingOtherItemCompositionDescription" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="SegmentReportingOtherItemAmount" xlink:title="SegmentReportingOtherItemAmount" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingOtherItemAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingOtherItemAmount" xml:lang="en-US" id="us-gaap_SegmentReportingOtherItemAmount">Other segment expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingOtherItemAmount" xlink:to="us-gaap_SegmentReportingOtherItemAmount" xlink:title="label: SegmentReportingOtherItemAmount to us-gaap_SegmentReportingOtherItemAmount" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="InterestExpenseNonoperating" xlink:title="InterestExpenseNonoperating" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestExpenseNonoperating" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_InterestExpenseNonoperating" xml:lang="en-US" id="us-gaap_InterestExpenseNonoperating">Interest expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestExpenseNonoperating" xlink:to="us-gaap_InterestExpenseNonoperating" xlink:title="label: InterestExpenseNonoperating to us-gaap_InterestExpenseNonoperating" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestExpenseNonoperating_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InterestExpenseNonoperating_lbl1" xml:lang="en-US" id="us-gaap_InterestExpenseNonoperating_lbl1">Interest Expense, Nonoperating</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestExpenseNonoperating" xlink:to="us-gaap_InterestExpenseNonoperating_lbl1" xlink:title="label: InterestExpenseNonoperating to us-gaap_InterestExpenseNonoperating_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:label xlink:type="resource" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_TitleOfIndividualWithRelationshipToEntityDomain" xml:lang="en-US" id="srt_TitleOfIndividualWithRelationshipToEntityDomain">Title and Position [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="label: TitleOfIndividualWithRelationshipToEntityDomain to srt_TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="NameOfMajorCustomerDomain" xlink:title="NameOfMajorCustomerDomain" />
    <link:label xlink:type="resource" xlink:label="srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_NameOfMajorCustomerDomain" xml:lang="en-US" id="srt_NameOfMajorCustomerDomain">Customer [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NameOfMajorCustomerDomain" xlink:to="srt_NameOfMajorCustomerDomain" xlink:title="label: NameOfMajorCustomerDomain to srt_NameOfMajorCustomerDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="ValuationAndQualifyingAccountsDisclosureLineItems" />
    <link:label xlink:type="resource" xlink:label="srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ValuationAndQualifyingAccountsDisclosureLineItems" xml:lang="en-US" id="srt_ValuationAndQualifyingAccountsDisclosureLineItems">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="label: ValuationAndQualifyingAccountsDisclosureLineItems to srt_ValuationAndQualifyingAccountsDisclosureLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="ValuationAndQualifyingAccountsDisclosureTable" />
    <link:label xlink:type="resource" xlink:label="srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ValuationAndQualifyingAccountsDisclosureTable" xml:lang="en-US" id="srt_ValuationAndQualifyingAccountsDisclosureTable">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAndQualifyingAccountsDisclosureTable" xlink:to="srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:title="label: ValuationAndQualifyingAccountsDisclosureTable to srt_ValuationAndQualifyingAccountsDisclosureTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="ChiefExecutiveOfficerMember" xlink:title="ChiefExecutiveOfficerMember" />
    <link:label xlink:type="resource" xlink:label="srt_ChiefExecutiveOfficerMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="srt_ChiefExecutiveOfficerMember" xml:lang="en-US" id="srt_ChiefExecutiveOfficerMember">Former Chief Executive Officer [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ChiefExecutiveOfficerMember" xlink:to="srt_ChiefExecutiveOfficerMember" xlink:title="label: ChiefExecutiveOfficerMember to srt_ChiefExecutiveOfficerMember" />
    <link:label xlink:type="resource" xlink:label="srt_ChiefExecutiveOfficerMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ChiefExecutiveOfficerMember_lbl1" xml:lang="en-US" id="srt_ChiefExecutiveOfficerMember_lbl1">Chief Executive Officer [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ChiefExecutiveOfficerMember" xlink:to="srt_ChiefExecutiveOfficerMember_lbl1" xlink:title="label: ChiefExecutiveOfficerMember to srt_ChiefExecutiveOfficerMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:label xlink:type="resource" xlink:label="srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_SegmentGeographicalDomain" xml:lang="en-US" id="srt_SegmentGeographicalDomain">Geographical [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentGeographicalDomain" xlink:to="srt_SegmentGeographicalDomain" xlink:title="label: SegmentGeographicalDomain to srt_SegmentGeographicalDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:label xlink:type="resource" xlink:label="srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_StatementGeographicalAxis" xml:lang="en-US" id="srt_StatementGeographicalAxis">Geographical [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis" xlink:title="label: StatementGeographicalAxis to srt_StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="MajorCustomersAxis" xlink:title="MajorCustomersAxis" />
    <link:label xlink:type="resource" xlink:label="srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_MajorCustomersAxis" xml:lang="en-US" id="srt_MajorCustomersAxis">Customer [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis" xlink:title="label: MajorCustomersAxis to srt_MajorCustomersAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:label xlink:type="resource" xlink:label="srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RangeAxis" xml:lang="en-US" id="srt_RangeAxis">Statistical Measurement [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RangeAxis" xlink:to="srt_RangeAxis" xlink:title="label: RangeAxis to srt_RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:label xlink:type="resource" xlink:label="srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RangeMember" xml:lang="en-US" id="srt_RangeMember">Statistical Measurement [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RangeMember" xlink:to="srt_RangeMember" xlink:title="label: RangeMember to srt_RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:label xlink:type="resource" xlink:label="srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_MaximumMember" xml:lang="en-US" id="srt_MaximumMember">Maximum [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MaximumMember" xlink:to="srt_MaximumMember" xlink:title="label: MaximumMember to srt_MaximumMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:label xlink:type="resource" xlink:label="srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_MinimumMember" xml:lang="en-US" id="srt_MinimumMember">Minimum [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MinimumMember" xlink:to="srt_MinimumMember" xlink:title="label: MinimumMember to srt_MinimumMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis" xlink:label="CounterpartyNameAxis" xlink:title="CounterpartyNameAxis" />
    <link:label xlink:type="resource" xlink:label="srt_CounterpartyNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_CounterpartyNameAxis" xml:lang="en-US" id="srt_CounterpartyNameAxis">Counterparty Name [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CounterpartyNameAxis" xlink:to="srt_CounterpartyNameAxis" xlink:title="label: CounterpartyNameAxis to srt_CounterpartyNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="RepurchaseAgreementCounterpartyNameDomain" xlink:title="RepurchaseAgreementCounterpartyNameDomain" />
    <link:label xlink:type="resource" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RepurchaseAgreementCounterpartyNameDomain" xml:lang="en-US" id="srt_RepurchaseAgreementCounterpartyNameDomain">Counterparty Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RepurchaseAgreementCounterpartyNameDomain" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:title="label: RepurchaseAgreementCounterpartyNameDomain to srt_RepurchaseAgreementCounterpartyNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:label xlink:type="resource" xlink:label="srt_TitleOfIndividualAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_TitleOfIndividualAxis" xml:lang="en-US" id="srt_TitleOfIndividualAxis">Title and Position [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis" xlink:title="label: TitleOfIndividualAxis to srt_TitleOfIndividualAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="ConsolidationItemsAxis" xlink:title="ConsolidationItemsAxis" />
    <link:label xlink:type="resource" xlink:label="srt_ConsolidationItemsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ConsolidationItemsAxis" xml:lang="en-US" id="srt_ConsolidationItemsAxis">Consolidation Items [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsAxis" xlink:title="label: ConsolidationItemsAxis to srt_ConsolidationItemsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain" xlink:title="ConsolidationItemsDomain" />
    <link:label xlink:type="resource" xlink:label="srt_ConsolidationItemsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ConsolidationItemsDomain" xml:lang="en-US" id="srt_ConsolidationItemsDomain">Consolidation Items [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConsolidationItemsDomain" xlink:to="srt_ConsolidationItemsDomain" xlink:title="label: ConsolidationItemsDomain to srt_ConsolidationItemsDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ReportableGeographicalComponentsMember" xlink:label="ReportableGeographicalComponentsMember" xlink:title="ReportableGeographicalComponentsMember" />
    <link:label xlink:type="resource" xlink:label="srt_ReportableGeographicalComponentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ReportableGeographicalComponentsMember" xml:lang="en-US" id="srt_ReportableGeographicalComponentsMember">Reportable Geographical Components [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReportableGeographicalComponentsMember" xlink:to="srt_ReportableGeographicalComponentsMember" xlink:title="label: ReportableGeographicalComponentsMember to srt_ReportableGeographicalComponentsMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EuropeMember" xlink:label="EuropeMember" xlink:title="EuropeMember" />
    <link:label xlink:type="resource" xlink:label="srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_EuropeMember" xml:lang="en-US" id="srt_EuropeMember">Europe [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EuropeMember" xlink:to="srt_EuropeMember" xlink:title="label: EuropeMember to srt_EuropeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain" xlink:title="ProductsAndServicesDomain" />
    <link:label xlink:type="resource" xlink:label="srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ProductsAndServicesDomain" xml:lang="en-US" id="srt_ProductsAndServicesDomain">Product and Service [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain" xlink:title="label: ProductsAndServicesDomain to srt_ProductsAndServicesDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="ProductOrServiceAxis" xlink:title="ProductOrServiceAxis" />
    <link:label xlink:type="resource" xlink:label="srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ProductOrServiceAxis" xml:lang="en-US" id="srt_ProductOrServiceAxis">Product and Service [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis" xlink:title="label: ProductOrServiceAxis to srt_ProductOrServiceAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:label xlink:type="resource" xlink:label="country_CA" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="country_CA" xml:lang="en-US" id="country_CA">Canada [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CA" xlink:to="country_CA" xlink:title="label: CA to country_CA" />
    <link:label xlink:type="resource" xlink:label="country_CA_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="country_CA_lbl1" xml:lang="en-US" id="country_CA_lbl1">CANADA</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CA" xlink:to="country_CA_lbl1" xlink:title="label: CA to country_CA_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:label xlink:type="resource" xlink:label="country_US" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="country_US" xml:lang="en-US" id="country_US">United States [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="US" xlink:to="country_US" xlink:title="label: US to country_US" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:label="CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:title="CybersecurityRiskManagementStrategyAndGovernanceAbstract" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract" xml:lang="en-US" id="cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract">Cybersecurity Risk Management, Strategy, and Governance [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:to="cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:title="label: CybersecurityRiskManagementStrategyAndGovernanceAbstract to cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:label="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:title="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock">Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:to="cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:title="label: CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock to cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementProcessesIntegratedFlag" xlink:label="CybersecurityRiskManagementProcessesIntegratedFlag" xlink:title="CybersecurityRiskManagementProcessesIntegratedFlag" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementProcessesIntegratedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementProcessesIntegratedFlag" xml:lang="en-US" id="cyd_CybersecurityRiskManagementProcessesIntegratedFlag">Cybersecurity Risk Management Processes Integrated [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementProcessesIntegratedFlag" xlink:to="cyd_CybersecurityRiskManagementProcessesIntegratedFlag" xlink:title="label: CybersecurityRiskManagementProcessesIntegratedFlag to cyd_CybersecurityRiskManagementProcessesIntegratedFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock" xlink:label="CybersecurityRiskManagementProcessesIntegratedTextBlock" xlink:title="CybersecurityRiskManagementProcessesIntegratedTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock">Cybersecurity Risk Management Processes Integrated [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementProcessesIntegratedTextBlock" xlink:to="cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock" xlink:title="label: CybersecurityRiskManagementProcessesIntegratedTextBlock to cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementThirdPartyEngagedFlag" xlink:label="CybersecurityRiskManagementThirdPartyEngagedFlag" xlink:title="CybersecurityRiskManagementThirdPartyEngagedFlag" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementThirdPartyEngagedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementThirdPartyEngagedFlag" xml:lang="en-US" id="cyd_CybersecurityRiskManagementThirdPartyEngagedFlag">Cybersecurity Risk Management Third Party Engaged [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementThirdPartyEngagedFlag" xlink:to="cyd_CybersecurityRiskManagementThirdPartyEngagedFlag" xlink:title="label: CybersecurityRiskManagementThirdPartyEngagedFlag to cyd_CybersecurityRiskManagementThirdPartyEngagedFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xlink:label="CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xlink:title="CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xml:lang="en-US" id="cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag">Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xlink:to="cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xlink:title="label: CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag to cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xlink:label="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xlink:title="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xml:lang="en-US" id="cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag">Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xlink:to="cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xlink:title="label: CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag to cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xlink:label="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xlink:title="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock">Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xlink:to="cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xlink:title="label: CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock to cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:label="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:title="CybersecurityRiskBoardOfDirectorsOversightTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock">Cybersecurity Risk Board of Directors Oversight [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:title="label: CybersecurityRiskBoardOfDirectorsOversightTextBlock to cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:label="CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:title="CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:to="cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:title="label: CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock to cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:label="CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:title="CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:to="cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:title="label: CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock to cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskRoleOfManagementTextBlock" xlink:label="CybersecurityRiskRoleOfManagementTextBlock" xlink:title="CybersecurityRiskRoleOfManagementTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskRoleOfManagementTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskRoleOfManagementTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskRoleOfManagementTextBlock">Cybersecurity Risk Role of Management [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskRoleOfManagementTextBlock" xlink:to="cyd_CybersecurityRiskRoleOfManagementTextBlock" xlink:title="label: CybersecurityRiskRoleOfManagementTextBlock to cyd_CybersecurityRiskRoleOfManagementTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xlink:label="CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xlink:title="CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xml:lang="en-US" id="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag">Cybersecurity Risk Management Positions or Committees Responsible [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xlink:to="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xlink:title="label: CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag to cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xlink:label="CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xlink:title="CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock">Cybersecurity Risk Management Positions or Committees Responsible [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xlink:to="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xlink:title="label: CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock to cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xlink:label="CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xlink:title="CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock">Cybersecurity Risk Management Expertise of Management Responsible [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xlink:to="cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xlink:title="label: CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock to cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xlink:label="CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xlink:title="CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xml:lang="en-US" id="cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock">Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xlink:to="cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xlink:title="label: CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock to cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xlink:label="CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xlink:title="CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" />
    <link:label xlink:type="resource" xlink:label="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xml:lang="en-US" id="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag">Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xlink:to="cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xlink:title="label: CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag to cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="CoverAbstract" xlink:title="CoverAbstract" />
    <link:label xlink:type="resource" xlink:label="dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CoverAbstract" xml:lang="en-US" id="dei_CoverAbstract">Cover [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CoverAbstract" xlink:to="dei_CoverAbstract" xlink:title="label: CoverAbstract to dei_CoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="DocumentType" xlink:title="DocumentType" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentType" xml:lang="en-US" id="dei_DocumentType">Document Type</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentType" xlink:to="dei_DocumentType" xlink:title="label: DocumentType to dei_DocumentType" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentAnnualReport" xlink:label="DocumentAnnualReport" xlink:title="DocumentAnnualReport" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentAnnualReport" xml:lang="en-US" id="dei_DocumentAnnualReport">Document Annual Report</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentAnnualReport" xlink:to="dei_DocumentAnnualReport" xlink:title="label: DocumentAnnualReport to dei_DocumentAnnualReport" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport" xlink:label="DocumentTransitionReport" xlink:title="DocumentTransitionReport" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentTransitionReport" xml:lang="en-US" id="dei_DocumentTransitionReport">Document Transition Report</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport" xlink:title="label: DocumentTransitionReport to dei_DocumentTransitionReport" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFinStmtErrorCorrectionFlag" xlink:label="DocumentFinStmtErrorCorrectionFlag" xlink:title="DocumentFinStmtErrorCorrectionFlag" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentFinStmtErrorCorrectionFlag" xml:lang="en-US" id="dei_DocumentFinStmtErrorCorrectionFlag">Document Financial Statement Error Correction [Flag]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentFinStmtErrorCorrectionFlag" xlink:to="dei_DocumentFinStmtErrorCorrectionFlag" xlink:title="label: DocumentFinStmtErrorCorrectionFlag to dei_DocumentFinStmtErrorCorrectionFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent" xlink:label="EntityInteractiveDataCurrent" xlink:title="EntityInteractiveDataCurrent" />
    <link:label xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityInteractiveDataCurrent" xml:lang="en-US" id="dei_EntityInteractiveDataCurrent">Entity Interactive Data Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent" xlink:title="label: EntityInteractiveDataCurrent to dei_EntityInteractiveDataCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="AmendmentFlag" xlink:title="AmendmentFlag" />
    <link:label xlink:type="resource" xlink:label="dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AmendmentFlag" xml:lang="en-US" id="dei_AmendmentFlag">Amendment Flag</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AmendmentFlag" xlink:to="dei_AmendmentFlag" xlink:title="label: AmendmentFlag to dei_AmendmentFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_IcfrAuditorAttestationFlag" xlink:label="IcfrAuditorAttestationFlag" xlink:title="IcfrAuditorAttestationFlag" />
    <link:label xlink:type="resource" xlink:label="dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_IcfrAuditorAttestationFlag" xml:lang="en-US" id="dei_IcfrAuditorAttestationFlag">ICFR Auditor Attestation Flag</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IcfrAuditorAttestationFlag" xlink:to="dei_IcfrAuditorAttestationFlag" xlink:title="label: IcfrAuditorAttestationFlag to dei_IcfrAuditorAttestationFlag" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus" xlink:label="DocumentFiscalYearFocus" xlink:title="DocumentFiscalYearFocus" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentFiscalYearFocus" xml:lang="en-US" id="dei_DocumentFiscalYearFocus">Document Fiscal Year Focus</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus" xlink:title="label: DocumentFiscalYearFocus to dei_DocumentFiscalYearFocus" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="DocumentFiscalPeriodFocus" xlink:title="DocumentFiscalPeriodFocus" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentFiscalPeriodFocus" xml:lang="en-US" id="dei_DocumentFiscalPeriodFocus">Document Fiscal Period Focus</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:title="label: DocumentFiscalPeriodFocus to dei_DocumentFiscalPeriodFocus" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="DocumentPeriodEndDate" xlink:title="DocumentPeriodEndDate" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentPeriodEndDate" xml:lang="en-US" id="dei_DocumentPeriodEndDate">Document Period End Date</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate" xlink:title="label: DocumentPeriodEndDate to dei_DocumentPeriodEndDate" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="EntityRegistrantName" xlink:title="EntityRegistrantName" />
    <link:label xlink:type="resource" xlink:label="dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityRegistrantName" xml:lang="en-US" id="dei_EntityRegistrantName">Entity Registrant Name</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityRegistrantName" xlink:to="dei_EntityRegistrantName" xlink:title="label: EntityRegistrantName to dei_EntityRegistrantName" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="EntityCentralIndexKey" xlink:title="EntityCentralIndexKey" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCentralIndexKey" xml:lang="en-US" id="dei_EntityCentralIndexKey">Entity Central Index Key</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey" xlink:title="label: EntityCentralIndexKey to dei_EntityCentralIndexKey" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="EntityFileNumber" xlink:title="EntityFileNumber" />
    <link:label xlink:type="resource" xlink:label="dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityFileNumber" xml:lang="en-US" id="dei_EntityFileNumber">Entity File Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityFileNumber" xlink:to="dei_EntityFileNumber" xlink:title="label: EntityFileNumber to dei_EntityFileNumber" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="EntityTaxIdentificationNumber" xlink:title="EntityTaxIdentificationNumber" />
    <link:label xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityTaxIdentificationNumber" xml:lang="en-US" id="dei_EntityTaxIdentificationNumber">Entity Tax Identification Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber" xlink:title="label: EntityTaxIdentificationNumber to dei_EntityTaxIdentificationNumber" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="EntityIncorporationStateCountryCode" xlink:title="EntityIncorporationStateCountryCode" />
    <link:label xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityIncorporationStateCountryCode" xml:lang="en-US" id="dei_EntityIncorporationStateCountryCode">Entity Incorporation, State or Country Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode" xlink:title="label: EntityIncorporationStateCountryCode to dei_EntityIncorporationStateCountryCode" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate" xlink:label="CurrentFiscalYearEndDate" xlink:title="CurrentFiscalYearEndDate" />
    <link:label xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CurrentFiscalYearEndDate" xml:lang="en-US" id="dei_CurrentFiscalYearEndDate">Current Fiscal Year End Date</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate" xlink:title="label: CurrentFiscalYearEndDate to dei_CurrentFiscalYearEndDate" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="EntityWellKnownSeasonedIssuer" xlink:title="EntityWellKnownSeasonedIssuer" />
    <link:label xlink:type="resource" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityWellKnownSeasonedIssuer" xml:lang="en-US" id="dei_EntityWellKnownSeasonedIssuer">Entity Well-known Seasoned Issuer</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer" xlink:title="label: EntityWellKnownSeasonedIssuer to dei_EntityWellKnownSeasonedIssuer" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityVoluntaryFilers" xlink:label="EntityVoluntaryFilers" xlink:title="EntityVoluntaryFilers" />
    <link:label xlink:type="resource" xlink:label="dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityVoluntaryFilers" xml:lang="en-US" id="dei_EntityVoluntaryFilers">Entity Voluntary Filers</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers" xlink:title="label: EntityVoluntaryFilers to dei_EntityVoluntaryFilers" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus" xlink:label="EntityCurrentReportingStatus" xlink:title="EntityCurrentReportingStatus" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCurrentReportingStatus" xml:lang="en-US" id="dei_EntityCurrentReportingStatus">Entity Current Reporting Status</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus" xlink:title="label: EntityCurrentReportingStatus to dei_EntityCurrentReportingStatus" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany" xlink:label="EntityShellCompany" xlink:title="EntityShellCompany" />
    <link:label xlink:type="resource" xlink:label="dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityShellCompany" xml:lang="en-US" id="dei_EntityShellCompany">Entity Shell Company</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityShellCompany" xlink:to="dei_EntityShellCompany" xlink:title="label: EntityShellCompany to dei_EntityShellCompany" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory" xlink:label="EntityFilerCategory" xlink:title="EntityFilerCategory" />
    <link:label xlink:type="resource" xlink:label="dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityFilerCategory" xml:lang="en-US" id="dei_EntityFilerCategory">Entity Filer Category</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityFilerCategory" xlink:to="dei_EntityFilerCategory" xlink:title="label: EntityFilerCategory to dei_EntityFilerCategory" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness" xlink:label="EntitySmallBusiness" xlink:title="EntitySmallBusiness" />
    <link:label xlink:type="resource" xlink:label="dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntitySmallBusiness" xml:lang="en-US" id="dei_EntitySmallBusiness">Entity Small Business</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness" xlink:title="label: EntitySmallBusiness to dei_EntitySmallBusiness" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="EntityEmergingGrowthCompany" xlink:title="EntityEmergingGrowthCompany" />
    <link:label xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityEmergingGrowthCompany" xml:lang="en-US" id="dei_EntityEmergingGrowthCompany">Entity Emerging Growth Company</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany" xlink:title="label: EntityEmergingGrowthCompany to dei_EntityEmergingGrowthCompany" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityPublicFloat" xlink:label="EntityPublicFloat" xlink:title="EntityPublicFloat" />
    <link:label xlink:type="resource" xlink:label="dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityPublicFloat" xml:lang="en-US" id="dei_EntityPublicFloat">Entity Public Float</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityPublicFloat" xlink:to="dei_EntityPublicFloat" xlink:title="label: EntityPublicFloat to dei_EntityPublicFloat" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="EntityAddressAddressLine1" xlink:title="EntityAddressAddressLine1" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressAddressLine1" xml:lang="en-US" id="dei_EntityAddressAddressLine1">Entity Address, Address Line One</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1" xlink:title="label: EntityAddressAddressLine1 to dei_EntityAddressAddressLine1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine2" xlink:label="EntityAddressAddressLine2" xlink:title="EntityAddressAddressLine2" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressAddressLine2" xml:lang="en-US" id="dei_EntityAddressAddressLine2">Entity Address, Address Line Two</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2" xlink:title="label: EntityAddressAddressLine2 to dei_EntityAddressAddressLine2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="EntityAddressCityOrTown" xlink:title="EntityAddressCityOrTown" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressCityOrTown" xml:lang="en-US" id="dei_EntityAddressCityOrTown">Entity Address, City or Town</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown" xlink:title="label: EntityAddressCityOrTown to dei_EntityAddressCityOrTown" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="EntityAddressStateOrProvince" xlink:title="EntityAddressStateOrProvince" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressStateOrProvince" xml:lang="en-US" id="dei_EntityAddressStateOrProvince">Entity Address, State or Province</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince" xlink:title="label: EntityAddressStateOrProvince to dei_EntityAddressStateOrProvince" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="EntityAddressPostalZipCode" xlink:title="EntityAddressPostalZipCode" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressPostalZipCode" xml:lang="en-US" id="dei_EntityAddressPostalZipCode">Entity Address, Postal Zip Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode" xlink:title="label: EntityAddressPostalZipCode to dei_EntityAddressPostalZipCode" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="CityAreaCode" xlink:title="CityAreaCode" />
    <link:label xlink:type="resource" xlink:label="dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CityAreaCode" xml:lang="en-US" id="dei_CityAreaCode">City Area Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CityAreaCode" xlink:to="dei_CityAreaCode" xlink:title="label: CityAreaCode to dei_CityAreaCode" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="LocalPhoneNumber" xlink:title="LocalPhoneNumber" />
    <link:label xlink:type="resource" xlink:label="dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_LocalPhoneNumber" xml:lang="en-US" id="dei_LocalPhoneNumber">Local Phone Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber" xlink:title="label: LocalPhoneNumber to dei_LocalPhoneNumber" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="Security12bTitle" xlink:title="Security12bTitle" />
    <link:label xlink:type="resource" xlink:label="dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_Security12bTitle" xml:lang="en-US" id="dei_Security12bTitle">Title of 12(b) Security</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Security12bTitle" xlink:to="dei_Security12bTitle" xlink:title="label: Security12bTitle to dei_Security12bTitle" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="TradingSymbol" xlink:title="TradingSymbol" />
    <link:label xlink:type="resource" xlink:label="dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_TradingSymbol" xml:lang="en-US" id="dei_TradingSymbol">Trading Symbol</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TradingSymbol" xlink:to="dei_TradingSymbol" xlink:title="label: TradingSymbol to dei_TradingSymbol" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="SecurityExchangeName" xlink:title="SecurityExchangeName" />
    <link:label xlink:type="resource" xlink:label="dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_SecurityExchangeName" xml:lang="en-US" id="dei_SecurityExchangeName">Security Exchange Name</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SecurityExchangeName" xlink:to="dei_SecurityExchangeName" xlink:title="label: SecurityExchangeName to dei_SecurityExchangeName" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="EntityCommonStockSharesOutstanding" xlink:title="EntityCommonStockSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCommonStockSharesOutstanding" xml:lang="en-US" id="dei_EntityCommonStockSharesOutstanding">Entity Common Stock, Shares Outstanding</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:title="label: EntityCommonStockSharesOutstanding to dei_EntityCommonStockSharesOutstanding" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorName" xlink:label="AuditorName" xlink:title="AuditorName" />
    <link:label xlink:type="resource" xlink:label="dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AuditorName" xml:lang="en-US" id="dei_AuditorName">Auditor Name</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AuditorName" xlink:to="dei_AuditorName" xlink:title="label: AuditorName to dei_AuditorName" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorFirmId" xlink:label="AuditorFirmId" xlink:title="AuditorFirmId" />
    <link:label xlink:type="resource" xlink:label="dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AuditorFirmId" xml:lang="en-US" id="dei_AuditorFirmId">Auditor Firm ID</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AuditorFirmId" xlink:to="dei_AuditorFirmId" xlink:title="label: AuditorFirmId to dei_AuditorFirmId" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorLocation" xlink:label="AuditorLocation" xlink:title="AuditorLocation" />
    <link:label xlink:type="resource" xlink:label="dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AuditorLocation" xml:lang="en-US" id="dei_AuditorLocation">Auditor Location</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AuditorLocation" xlink:to="dei_AuditorLocation" xlink:title="label: AuditorLocation to dei_AuditorLocation" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DescriptionOfBusinessAbstract" xlink:label="DescriptionOfBusinessAbstract" xlink:title="DescriptionOfBusinessAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_DescriptionOfBusinessAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DescriptionOfBusinessAbstract_lbl1" xml:lang="en-US" id="tact_DescriptionOfBusinessAbstract_lbl1">Description of business [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DescriptionOfBusinessAbstract" xlink:to="tact_DescriptionOfBusinessAbstract_lbl1" xlink:title="label: DescriptionOfBusinessAbstract to tact_DescriptionOfBusinessAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_NumberOfSoftwareSolutions" xlink:label="NumberOfSoftwareSolutions" xlink:title="NumberOfSoftwareSolutions" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfSoftwareSolutions_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_NumberOfSoftwareSolutions_lbl" xml:lang="en-US" id="tact_NumberOfSoftwareSolutions_lbl">Number of software solutions from the after-market side of the business.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfSoftwareSolutions" xlink:to="tact_NumberOfSoftwareSolutions_lbl" xlink:title="label: NumberOfSoftwareSolutions to tact_NumberOfSoftwareSolutions_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfSoftwareSolutions_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_NumberOfSoftwareSolutions_lbl1" xml:lang="en-US" id="tact_NumberOfSoftwareSolutions_lbl1">Number of software solutions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfSoftwareSolutions" xlink:to="tact_NumberOfSoftwareSolutions_lbl1" xlink:title="label: NumberOfSoftwareSolutions to tact_NumberOfSoftwareSolutions_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfSoftwareSolutions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_NumberOfSoftwareSolutions" xml:lang="en-US" id="tact_NumberOfSoftwareSolutions">Number of software solutions from the after-market side of the business</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfSoftwareSolutions" xlink:to="tact_NumberOfSoftwareSolutions" xlink:title="label: NumberOfSoftwareSolutions to tact_NumberOfSoftwareSolutions" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FacilityInLasVegasNevadaMember" xlink:label="FacilityInLasVegasNevadaMember" xlink:title="FacilityInLasVegasNevadaMember" />
    <link:label xlink:type="resource" xlink:label="tact_FacilityInLasVegasNevadaMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FacilityInLasVegasNevadaMember_lbl" xml:lang="en-US" id="tact_FacilityInLasVegasNevadaMember_lbl">Facility located in Las Vegas, Nevada.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FacilityInLasVegasNevadaMember" xlink:to="tact_FacilityInLasVegasNevadaMember_lbl" xlink:title="label: FacilityInLasVegasNevadaMember to tact_FacilityInLasVegasNevadaMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FacilityInLasVegasNevadaMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FacilityInLasVegasNevadaMember_lbl1" xml:lang="en-US" id="tact_FacilityInLasVegasNevadaMember_lbl1">Facility in Las Vegas, Nevada [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FacilityInLasVegasNevadaMember" xlink:to="tact_FacilityInLasVegasNevadaMember_lbl1" xlink:title="label: FacilityInLasVegasNevadaMember to tact_FacilityInLasVegasNevadaMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FacilityInLasVegasNevadaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FacilityInLasVegasNevadaMember" xml:lang="en-US" id="tact_FacilityInLasVegasNevadaMember">Facility in Las Vegas, Nevada [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FacilityInLasVegasNevadaMember" xlink:to="tact_FacilityInLasVegasNevadaMember" xlink:title="label: FacilityInLasVegasNevadaMember to tact_FacilityInLasVegasNevadaMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:label="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" id="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl">Amount of increase (decrease) in operating lease right-of-use asset.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:to="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl" xlink:title="label: IncreaseDecreaseInOperatingLeaseRightOfUseAsset to tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1" xml:lang="en-US" id="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1">Increase (Decrease) in Operating Lease Right-of-use Asset</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:to="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1" xlink:title="label: IncreaseDecreaseInOperatingLeaseRightOfUseAsset to tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xml:lang="en-US" id="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset">Increase in right-of-use-asset</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:to="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="label: IncreaseDecreaseInOperatingLeaseRightOfUseAsset to tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:label="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:title="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" />
    <link:label xlink:type="resource" xlink:label="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl" xml:lang="en-US" id="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl">Period the customer receives free maintenance upon completion of EPICENTRAL installation, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:to="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl" xlink:title="label: TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation to tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1" xml:lang="en-US" id="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1">Term of free maintenance upon completion of software installation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:to="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1" xlink:title="label: TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation to tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xml:lang="en-US" id="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation">Term of free maintenance upon completion of software installation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:to="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:title="label: TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation to tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_InternationalMember_lbl" xml:lang="en-US" id="tact_InternationalMember_lbl">Other countries outside of the United States.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalMember" xlink:to="tact_InternationalMember_lbl" xlink:title="label: InternationalMember to tact_InternationalMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_InternationalMember_lbl1" xml:lang="en-US" id="tact_InternationalMember_lbl1">International [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalMember" xlink:to="tact_InternationalMember_lbl1" xlink:title="label: InternationalMember to tact_InternationalMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_PosAutomationAndBankingMember" xlink:label="PosAutomationAndBankingMember" xlink:title="PosAutomationAndBankingMember" />
    <link:label xlink:type="resource" xlink:label="tact_PosAutomationAndBankingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PosAutomationAndBankingMember_lbl" xml:lang="en-US" id="tact_PosAutomationAndBankingMember_lbl">Revenue from sales of thermal printers used primarily by restaurants (including fine dining, casual dining, quick serve and hospitality establishments) located either at the checkout counter or within self-service kiosks to print receipts for consumers or print on linerless labels.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PosAutomationAndBankingMember" xlink:to="tact_PosAutomationAndBankingMember_lbl" xlink:title="label: PosAutomationAndBankingMember to tact_PosAutomationAndBankingMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PosAutomationAndBankingMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PosAutomationAndBankingMember_lbl1" xml:lang="en-US" id="tact_PosAutomationAndBankingMember_lbl1">POS Automation and Banking [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PosAutomationAndBankingMember" xlink:to="tact_PosAutomationAndBankingMember_lbl1" xlink:title="label: PosAutomationAndBankingMember to tact_PosAutomationAndBankingMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PosAutomationAndBankingMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PosAutomationAndBankingMember" xml:lang="en-US" id="tact_PosAutomationAndBankingMember">POS Automation [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PosAutomationAndBankingMember" xlink:to="tact_PosAutomationAndBankingMember" xlink:title="label: PosAutomationAndBankingMember to tact_PosAutomationAndBankingMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FoodServiceTechnologyMember" xlink:label="FoodServiceTechnologyMember" xlink:title="FoodServiceTechnologyMember" />
    <link:label xlink:type="resource" xlink:label="tact_FoodServiceTechnologyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FoodServiceTechnologyMember_lbl" xml:lang="en-US" id="tact_FoodServiceTechnologyMember_lbl">Revenue from sales of the BOHA! ecosystem, which combines the latest generation terminal, cloud-based software applications and related hardware into a unique solution to automate operations with food production in the back-of-house operations in restaurants and food service operations.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FoodServiceTechnologyMember" xlink:to="tact_FoodServiceTechnologyMember_lbl" xlink:title="label: FoodServiceTechnologyMember to tact_FoodServiceTechnologyMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FoodServiceTechnologyMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FoodServiceTechnologyMember_lbl1" xml:lang="en-US" id="tact_FoodServiceTechnologyMember_lbl1">Food Service Technology [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FoodServiceTechnologyMember" xlink:to="tact_FoodServiceTechnologyMember_lbl1" xlink:title="label: FoodServiceTechnologyMember to tact_FoodServiceTechnologyMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FoodServiceTechnologyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FoodServiceTechnologyMember" xml:lang="en-US" id="tact_FoodServiceTechnologyMember">Food Service Technology [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FoodServiceTechnologyMember" xlink:to="tact_FoodServiceTechnologyMember" xlink:title="label: FoodServiceTechnologyMember to tact_FoodServiceTechnologyMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TransactServicesGroupMember" xlink:label="TransactServicesGroupMember" xlink:title="TransactServicesGroupMember" />
    <link:label xlink:type="resource" xlink:label="tact_TransactServicesGroupMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TransactServicesGroupMember_lbl" xml:lang="en-US" id="tact_TransactServicesGroupMember_lbl">Revenue from range of supplies and consumables used in the printing and scanning activities of customers in the restaurant and hospitality, banking, retail, casino and gaming, government and oil and gas exploration markets.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactServicesGroupMember" xlink:to="tact_TransactServicesGroupMember_lbl" xlink:title="label: TransactServicesGroupMember to tact_TransactServicesGroupMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TransactServicesGroupMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TransactServicesGroupMember_lbl1" xml:lang="en-US" id="tact_TransactServicesGroupMember_lbl1">TransAct Services Group [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactServicesGroupMember" xlink:to="tact_TransactServicesGroupMember_lbl1" xlink:title="label: TransactServicesGroupMember to tact_TransactServicesGroupMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TransactServicesGroupMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TransactServicesGroupMember" xml:lang="en-US" id="tact_TransactServicesGroupMember">TransAct Services Group [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactServicesGroupMember" xlink:to="tact_TransactServicesGroupMember" xlink:title="label: TransactServicesGroupMember to tact_TransactServicesGroupMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_CasinoAndGamingMember" xlink:label="CasinoAndGamingMember" xlink:title="CasinoAndGamingMember" />
    <link:label xlink:type="resource" xlink:label="tact_CasinoAndGamingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_CasinoAndGamingMember_lbl" xml:lang="en-US" id="tact_CasinoAndGamingMember_lbl">Revenue from sales of thermal ticket printers used in slot machines, video lottery terminals, and other gaming machines that print tickets or receipts instead of issuing coins at casinos and racetracks and other gaming venues worldwide.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CasinoAndGamingMember" xlink:to="tact_CasinoAndGamingMember_lbl" xlink:title="label: CasinoAndGamingMember to tact_CasinoAndGamingMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_CasinoAndGamingMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_CasinoAndGamingMember_lbl1" xml:lang="en-US" id="tact_CasinoAndGamingMember_lbl1">Casino and Gaming [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CasinoAndGamingMember" xlink:to="tact_CasinoAndGamingMember_lbl1" xlink:title="label: CasinoAndGamingMember to tact_CasinoAndGamingMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_CasinoAndGamingMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_CasinoAndGamingMember" xml:lang="en-US" id="tact_CasinoAndGamingMember">Casino and Gaming [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CasinoAndGamingMember" xlink:to="tact_CasinoAndGamingMember" xlink:title="label: CasinoAndGamingMember to tact_CasinoAndGamingMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:label="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl">The percentage of eligible accounts receivable included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl" xlink:title="label: DebtInstrumentFinancialCovenantEligibleAccountsReceivable to tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1">Debt Instrument, Financial Covenant, Eligible Accounts Receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1" xlink:title="label: DebtInstrumentFinancialCovenantEligibleAccountsReceivable to tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable">Percentage of eligible accounts receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="label: DebtInstrumentFinancialCovenantEligibleAccountsReceivable to tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventory" xlink:label="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="DebtInstrumentFinancialCovenantEligibleInventory" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl">The minimum value of eligible raw material and finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventory" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventory to tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1">Debt Instrument, Financial Covenant, Eligible Inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventory" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventory to tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventory" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventory">Eligible inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventory" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventory to tact_DebtInstrumentFinancialCovenantEligibleInventory" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl">Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment from April 1, 2025 through March 31, 2026.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl1" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl1">Debt Instrument, Early Payment/Termination Premium for Prepayment, Period Two</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl1" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo">Percentage of premium for prepayment loan April 1, 2025 through March 31, 2026</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl">Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment on or prior to March 31, 2025.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl1" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl1">Debt Instrument, Early Payment/Termination Premium for Prepayment, Period One</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl1" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne">Percentage of premium for prepayment loan prior to March 31, 2025</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:label="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:title="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl" xml:lang="en-US" id="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl">The minimum principal amount of outstanding borrowings that must be maintained under the credit facility.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:to="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl" xlink:title="label: DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained to tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl1" xml:lang="en-US" id="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl1">Debt Instrument, Minimum outstanding borrowings to be maintained</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:to="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl1" xlink:title="label: DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained to tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xml:lang="en-US" id="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained">Minimum outstanding borrowings to be maintained</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:to="tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:title="label: DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained to tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl">The percentage of eligible finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1">Debt Instrument, Financial Covenant, Eligible Inventory, Finished Goods Inventory, Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage">Percentage of eligible finished goods inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl">Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment after March 31, 2026.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl1" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl1">Debt Instrument, Early Payment/Termination Premium for Prepayment, Thereafter</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl1" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xml:lang="en-US" id="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter">Percentage of premium for prepayment loan March 31, 2026 thereafter</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:to="tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:title="label: DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter to tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:label="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:label xlink:type="resource" xlink:label="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl" xml:lang="en-US" id="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl">Arrangement with Siena Lending Group LLC that provides a revolving credit line, subject to a borrowing base.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:to="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl" xlink:title="label: RevolvingCreditFacilitySienaLendingGroupLlcMember to tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1" xml:lang="en-US" id="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1">Revolving Credit Facility, Siena Lending Group Llc [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:to="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1" xlink:title="label: RevolvingCreditFacilitySienaLendingGroupLlcMember to tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xml:lang="en-US" id="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember">Sienna Credit Facility [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:to="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="label: RevolvingCreditFacilitySienaLendingGroupLlcMember to tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl">The percentage of eligible raw material included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1">Debt Instrument, Financial Covenant, Eligible Inventory, Raw Material, Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage">Percentage of eligible raw material</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:label="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:title="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl" xml:lang="en-US" id="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl">The principal amount, whether or not such amount of loans is actually outstanding, on which interest is paid under the credit facility.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:to="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl" xlink:title="label: DebtInstrumentPrincipalAmountOnWhichInterestIsPaid to tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl1" xml:lang="en-US" id="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl1">Debt Instrument, Principal amount on which interest is paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:to="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl1" xlink:title="label: DebtInstrumentPrincipalAmountOnWhichInterestIsPaid to tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xml:lang="en-US" id="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid">Principal amount on which interest is paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:to="tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:title="label: DebtInstrumentPrincipalAmountOnWhichInterestIsPaid to tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:label xlink:type="resource" xlink:label="tact_ComputerSoftwareAndEquipmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ComputerSoftwareAndEquipmentMember_lbl" xml:lang="en-US" id="tact_ComputerSoftwareAndEquipmentMember_lbl">Computer software, including but not limited to, acquired and internally developed computer software, and long-lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComputerSoftwareAndEquipmentMember" xlink:to="tact_ComputerSoftwareAndEquipmentMember_lbl" xlink:title="label: ComputerSoftwareAndEquipmentMember to tact_ComputerSoftwareAndEquipmentMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ComputerSoftwareAndEquipmentMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ComputerSoftwareAndEquipmentMember_lbl1" xml:lang="en-US" id="tact_ComputerSoftwareAndEquipmentMember_lbl1">Computer Software and Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComputerSoftwareAndEquipmentMember" xlink:to="tact_ComputerSoftwareAndEquipmentMember_lbl1" xlink:title="label: ComputerSoftwareAndEquipmentMember to tact_ComputerSoftwareAndEquipmentMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ComputerSoftwareAndEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ComputerSoftwareAndEquipmentMember" xml:lang="en-US" id="tact_ComputerSoftwareAndEquipmentMember">Computer Software and Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComputerSoftwareAndEquipmentMember" xlink:to="tact_ComputerSoftwareAndEquipmentMember" xlink:title="label: ComputerSoftwareAndEquipmentMember to tact_ComputerSoftwareAndEquipmentMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:label xlink:type="resource" xlink:label="tact_FurnitureAndOfficeEquipmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FurnitureAndOfficeEquipmentMember_lbl" xml:lang="en-US" id="tact_FurnitureAndOfficeEquipmentMember_lbl">Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities and tangible personal property used in an office setting. Examples include, but are not limited to, computers, copiers and fax machine.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FurnitureAndOfficeEquipmentMember" xlink:to="tact_FurnitureAndOfficeEquipmentMember_lbl" xlink:title="label: FurnitureAndOfficeEquipmentMember to tact_FurnitureAndOfficeEquipmentMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FurnitureAndOfficeEquipmentMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FurnitureAndOfficeEquipmentMember_lbl1" xml:lang="en-US" id="tact_FurnitureAndOfficeEquipmentMember_lbl1">Furniture and Office Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FurnitureAndOfficeEquipmentMember" xlink:to="tact_FurnitureAndOfficeEquipmentMember_lbl1" xlink:title="label: FurnitureAndOfficeEquipmentMember to tact_FurnitureAndOfficeEquipmentMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FurnitureAndOfficeEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FurnitureAndOfficeEquipmentMember" xml:lang="en-US" id="tact_FurnitureAndOfficeEquipmentMember">Furniture and Office Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FurnitureAndOfficeEquipmentMember" xlink:to="tact_FurnitureAndOfficeEquipmentMember" xlink:title="label: FurnitureAndOfficeEquipmentMember to tact_FurnitureAndOfficeEquipmentMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FixedAssetsExcludingConstructionInProcessMember" xlink:label="FixedAssetsExcludingConstructionInProcessMember" xlink:title="FixedAssetsExcludingConstructionInProcessMember" />
    <link:label xlink:type="resource" xlink:label="tact_FixedAssetsExcludingConstructionInProcessMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FixedAssetsExcludingConstructionInProcessMember_lbl" xml:lang="en-US" id="tact_FixedAssetsExcludingConstructionInProcessMember_lbl">Fixed assets excluding construction in-process. Includes tooling, machinery and equipment, furniture and office equipment, computer software and equipment, and leasehold improvements.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="tact_FixedAssetsExcludingConstructionInProcessMember_lbl" xlink:title="label: FixedAssetsExcludingConstructionInProcessMember to tact_FixedAssetsExcludingConstructionInProcessMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FixedAssetsExcludingConstructionInProcessMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FixedAssetsExcludingConstructionInProcessMember_lbl1" xml:lang="en-US" id="tact_FixedAssetsExcludingConstructionInProcessMember_lbl1">Fixed Assets, Excluding Construction in-Process [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="tact_FixedAssetsExcludingConstructionInProcessMember_lbl1" xlink:title="label: FixedAssetsExcludingConstructionInProcessMember to tact_FixedAssetsExcludingConstructionInProcessMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FixedAssetsExcludingConstructionInProcessMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FixedAssetsExcludingConstructionInProcessMember" xml:lang="en-US" id="tact_FixedAssetsExcludingConstructionInProcessMember">Fixed Assets, Excluding Construction in-Process [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="tact_FixedAssetsExcludingConstructionInProcessMember" xlink:title="label: FixedAssetsExcludingConstructionInProcessMember to tact_FixedAssetsExcludingConstructionInProcessMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_InternationalGameTechnologyPlcMember" xlink:label="InternationalGameTechnologyPlcMember" xlink:title="InternationalGameTechnologyPlcMember" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalGameTechnologyPlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_InternationalGameTechnologyPlcMember_lbl" xml:lang="en-US" id="tact_InternationalGameTechnologyPlcMember_lbl">International Game Technology PLC, formerly Gtech S.p.A. and Lottomatica S.p.A., is a multinational gaming company that produces slot machines and other gaming technology.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalGameTechnologyPlcMember" xlink:to="tact_InternationalGameTechnologyPlcMember_lbl" xlink:title="label: InternationalGameTechnologyPlcMember to tact_InternationalGameTechnologyPlcMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalGameTechnologyPlcMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_InternationalGameTechnologyPlcMember_lbl1" xml:lang="en-US" id="tact_InternationalGameTechnologyPlcMember_lbl1">International Game Technology PLC [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalGameTechnologyPlcMember" xlink:to="tact_InternationalGameTechnologyPlcMember_lbl1" xlink:title="label: InternationalGameTechnologyPlcMember to tact_InternationalGameTechnologyPlcMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalGameTechnologyPlcMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_InternationalGameTechnologyPlcMember" xml:lang="en-US" id="tact_InternationalGameTechnologyPlcMember">International Gaming Technology [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalGameTechnologyPlcMember" xlink:to="tact_InternationalGameTechnologyPlcMember" xlink:title="label: InternationalGameTechnologyPlcMember to tact_InternationalGameTechnologyPlcMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_LightWonderGamingIncMember" xlink:label="LightWonderGamingIncMember" xlink:title="LightWonderGamingIncMember" />
    <link:label xlink:type="resource" xlink:label="tact_LightWonderGamingIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_LightWonderGamingIncMember_lbl" xml:lang="en-US" id="tact_LightWonderGamingIncMember_lbl">Light &amp; Wonder, Inc., formerly Scientific Games Corporation, is an American corporation that provides gaming products and services.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LightWonderGamingIncMember" xlink:to="tact_LightWonderGamingIncMember_lbl" xlink:title="label: LightWonderGamingIncMember to tact_LightWonderGamingIncMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_LightWonderGamingIncMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_LightWonderGamingIncMember_lbl1" xml:lang="en-US" id="tact_LightWonderGamingIncMember_lbl1">Light &amp; Wonder Gaming, Inc. [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LightWonderGamingIncMember" xlink:to="tact_LightWonderGamingIncMember_lbl1" xlink:title="label: LightWonderGamingIncMember to tact_LightWonderGamingIncMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_LightWonderGamingIncMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_LightWonderGamingIncMember" xml:lang="en-US" id="tact_LightWonderGamingIncMember">Light &amp; Wonder Gaming, Inc. [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LightWonderGamingIncMember" xlink:to="tact_LightWonderGamingIncMember" xlink:title="label: LightWonderGamingIncMember to tact_LightWonderGamingIncMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ContractWithCustomerRevenueRecognized" xlink:label="ContractWithCustomerRevenueRecognized" xlink:title="ContractWithCustomerRevenueRecognized" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ContractWithCustomerRevenueRecognized_lbl" xml:lang="en-US" id="tact_ContractWithCustomerRevenueRecognized_lbl">Amount of revenue recognized related to obligation to transfer good or service to customer for which consideration from customer has been received or is due.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerRevenueRecognized" xlink:to="tact_ContractWithCustomerRevenueRecognized_lbl" xlink:title="label: ContractWithCustomerRevenueRecognized to tact_ContractWithCustomerRevenueRecognized_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerRevenueRecognized_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ContractWithCustomerRevenueRecognized_lbl1" xml:lang="en-US" id="tact_ContractWithCustomerRevenueRecognized_lbl1">Contract with Customer, Revenue Recognized</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerRevenueRecognized" xlink:to="tact_ContractWithCustomerRevenueRecognized_lbl1" xlink:title="label: ContractWithCustomerRevenueRecognized to tact_ContractWithCustomerRevenueRecognized_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ContractWithCustomerRevenueRecognized" xml:lang="en-US" id="tact_ContractWithCustomerRevenueRecognized">Revenue recognized</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerRevenueRecognized" xlink:to="tact_ContractWithCustomerRevenueRecognized" xlink:title="label: ContractWithCustomerRevenueRecognized to tact_ContractWithCustomerRevenueRecognized" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ContractWithCustomerAssetLiabilityNet" xlink:label="ContractWithCustomerAssetLiabilityNet" xlink:title="ContractWithCustomerAssetLiabilityNet" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerAssetLiabilityNet_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ContractWithCustomerAssetLiabilityNet_lbl" xml:lang="en-US" id="tact_ContractWithCustomerAssetLiabilityNet_lbl">Amount, after allowance for credit loss, of right (asset) to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time and the amount of obligation (liability) to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="tact_ContractWithCustomerAssetLiabilityNet_lbl" xlink:title="label: ContractWithCustomerAssetLiabilityNet to tact_ContractWithCustomerAssetLiabilityNet_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerAssetLiabilityNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ContractWithCustomerAssetLiabilityNet_lbl1" xml:lang="en-US" id="tact_ContractWithCustomerAssetLiabilityNet_lbl1">Contract with Customer, Asset (Liability), net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="tact_ContractWithCustomerAssetLiabilityNet_lbl1" xlink:title="label: ContractWithCustomerAssetLiabilityNet to tact_ContractWithCustomerAssetLiabilityNet_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerAssetLiabilityNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="tact_ContractWithCustomerAssetLiabilityNet" xml:lang="en-US" id="tact_ContractWithCustomerAssetLiabilityNet">Net contract (liabilities) assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="tact_ContractWithCustomerAssetLiabilityNet" xlink:title="label: ContractWithCustomerAssetLiabilityNet to tact_ContractWithCustomerAssetLiabilityNet" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:label="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl" xml:lang="en-US" id="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl">Amount of obligation to transfer good or service to customer related to customer prepayments for which consideration has been received or is receivable, classified as current.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:to="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl" xlink:title="label: ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent to tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1" xml:lang="en-US" id="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1">Contract with Customer, Liability for Customer Prepayments, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:to="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1" xlink:title="label: ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent to tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xml:lang="en-US" id="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent">Customer pre-payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:to="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="label: ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent to tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_GeographicAreaInformationTextBlock" xlink:label="GeographicAreaInformationTextBlock" xlink:title="GeographicAreaInformationTextBlock" />
    <link:label xlink:type="resource" xlink:label="tact_GeographicAreaInformationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_GeographicAreaInformationTextBlock_lbl" xml:lang="en-US" id="tact_GeographicAreaInformationTextBlock_lbl">The entire disclosure for information regarding operations by geographic area.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeographicAreaInformationTextBlock" xlink:to="tact_GeographicAreaInformationTextBlock_lbl" xlink:title="label: GeographicAreaInformationTextBlock to tact_GeographicAreaInformationTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_GeographicAreaInformationTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_GeographicAreaInformationTextBlock_lbl1" xml:lang="en-US" id="tact_GeographicAreaInformationTextBlock_lbl1">Geographic Area Information [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeographicAreaInformationTextBlock" xlink:to="tact_GeographicAreaInformationTextBlock_lbl1" xlink:title="label: GeographicAreaInformationTextBlock to tact_GeographicAreaInformationTextBlock_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_GeographicAreaInformationTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_GeographicAreaInformationTextBlock" xml:lang="en-US" id="tact_GeographicAreaInformationTextBlock">Geographic area information</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeographicAreaInformationTextBlock" xlink:to="tact_GeographicAreaInformationTextBlock" xlink:title="label: GeographicAreaInformationTextBlock to tact_GeographicAreaInformationTextBlock" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_PacificRimMember" xlink:label="PacificRimMember" xlink:title="PacificRimMember" />
    <link:label xlink:type="resource" xlink:label="tact_PacificRimMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PacificRimMember_lbl" xml:lang="en-US" id="tact_PacificRimMember_lbl">Geographic area surrounding the edges of the Pacific Ocean. The Pacific Rim covers the western shores of North America and South America, in addition to Australia, eastern Asia and the islands of the Pacific.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PacificRimMember" xlink:to="tact_PacificRimMember_lbl" xlink:title="label: PacificRimMember to tact_PacificRimMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PacificRimMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PacificRimMember_lbl1" xml:lang="en-US" id="tact_PacificRimMember_lbl1">Pacific Rim [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PacificRimMember" xlink:to="tact_PacificRimMember_lbl1" xlink:title="label: PacificRimMember to tact_PacificRimMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PacificRimMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PacificRimMember" xml:lang="en-US" id="tact_PacificRimMember">Pacific Rim [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PacificRimMember" xlink:to="tact_PacificRimMember" xlink:title="label: PacificRimMember to tact_PacificRimMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:label="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:title="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl">Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to limitation on executive compensation.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent to tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl1" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl1">Effective Income Tax Rate Reconciliation, Executive Compensation Limitation, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent to tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent">Executive compensation limitation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:title="label: EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent to tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:label="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:title="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" />
    <link:label xlink:type="resource" xlink:label="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl" xml:lang="en-US" id="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl">Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward in the United States.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:to="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl" xlink:title="label: ValuationAllowanceDeferredTaxAssetUnitedStatesMember to tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl1" xml:lang="en-US" id="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl1">Valuation Allowance, Deferred Tax Asset, United States [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:to="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl1" xlink:title="label: ValuationAllowanceDeferredTaxAssetUnitedStatesMember to tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xml:lang="en-US" id="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember">Deferred Tax Assets in United States [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:to="tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:title="label: ValuationAllowanceDeferredTaxAssetUnitedStatesMember to tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TaxCreditCarryforwardExpirationPeriod" xlink:label="TaxCreditCarryforwardExpirationPeriod" xlink:title="TaxCreditCarryforwardExpirationPeriod" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardExpirationPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TaxCreditCarryforwardExpirationPeriod_lbl" xml:lang="en-US" id="tact_TaxCreditCarryforwardExpirationPeriod_lbl">Period remaining before the tax credit carryforward expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardExpirationPeriod" xlink:to="tact_TaxCreditCarryforwardExpirationPeriod_lbl" xlink:title="label: TaxCreditCarryforwardExpirationPeriod to tact_TaxCreditCarryforwardExpirationPeriod_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardExpirationPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TaxCreditCarryforwardExpirationPeriod_lbl1" xml:lang="en-US" id="tact_TaxCreditCarryforwardExpirationPeriod_lbl1">Tax Credit Carryforward, Expiration Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardExpirationPeriod" xlink:to="tact_TaxCreditCarryforwardExpirationPeriod_lbl1" xlink:title="label: TaxCreditCarryforwardExpirationPeriod to tact_TaxCreditCarryforwardExpirationPeriod_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardExpirationPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TaxCreditCarryforwardExpirationPeriod" xml:lang="en-US" id="tact_TaxCreditCarryforwardExpirationPeriod">Tax credit carryforwards expiration period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardExpirationPeriod" xlink:to="tact_TaxCreditCarryforwardExpirationPeriod" xlink:title="label: TaxCreditCarryforwardExpirationPeriod to tact_TaxCreditCarryforwardExpirationPeriod" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_OperatingLossCarryforwardsNotSubjectToExpiration" xlink:label="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="OperatingLossCarryforwardsNotSubjectToExpiration" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl" xml:lang="en-US" id="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl">Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are not subject to expiration dates.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl" xlink:title="label: OperatingLossCarryforwardsNotSubjectToExpiration to tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1" xml:lang="en-US" id="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1">Operating Loss Carryforwards, Not Subject to Expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1" xlink:title="label: OperatingLossCarryforwardsNotSubjectToExpiration to tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsNotSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_OperatingLossCarryforwardsNotSubjectToExpiration" xml:lang="en-US" id="tact_OperatingLossCarryforwardsNotSubjectToExpiration">Net operating loss carryforwards not subject to expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="label: OperatingLossCarryforwardsNotSubjectToExpiration to tact_OperatingLossCarryforwardsNotSubjectToExpiration" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_OperatingLossCarryforwardsSubjectToExpiration" xlink:label="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="OperatingLossCarryforwardsSubjectToExpiration" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl" xml:lang="en-US" id="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl">Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl" xlink:title="label: OperatingLossCarryforwardsSubjectToExpiration to tact_OperatingLossCarryforwardsSubjectToExpiration_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1" xml:lang="en-US" id="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1">Operating Loss Carryforwards, Subject to Expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1" xlink:title="label: OperatingLossCarryforwardsSubjectToExpiration to tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_OperatingLossCarryforwardsSubjectToExpiration" xml:lang="en-US" id="tact_OperatingLossCarryforwardsSubjectToExpiration">Net operating loss carryforwards subject to expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsSubjectToExpiration" xlink:title="label: OperatingLossCarryforwardsSubjectToExpiration to tact_OperatingLossCarryforwardsSubjectToExpiration" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TaxCreditCarryforwardAmountSubjectToExpiration" xlink:label="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="TaxCreditCarryforwardAmountSubjectToExpiration" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl" xml:lang="en-US" id="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl">The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:to="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl" xlink:title="label: TaxCreditCarryforwardAmountSubjectToExpiration to tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1" xml:lang="en-US" id="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1">Tax Credit Carryforward, Amount, Subject to Expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:to="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1" xlink:title="label: TaxCreditCarryforwardAmountSubjectToExpiration to tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardAmountSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TaxCreditCarryforwardAmountSubjectToExpiration" xml:lang="en-US" id="tact_TaxCreditCarryforwardAmountSubjectToExpiration">Tax credit carryforwards subject to expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:to="tact_TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="label: TaxCreditCarryforwardAmountSubjectToExpiration to tact_TaxCreditCarryforwardAmountSubjectToExpiration" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl" xml:lang="en-US" id="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl">Stock incentive plans which provide for awards to executives, key employees, directors and consultants.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl" xlink:title="label: EquityIncentivePlan2005AndEquityIncentivePlan2014Member to tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1" xml:lang="en-US" id="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1">Equity Incentive Plan 2005 and Equity Incentive Plan 2014 [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1" xlink:title="label: EquityIncentivePlan2005AndEquityIncentivePlan2014Member to tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xml:lang="en-US" id="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">2005 Equity Incentive Plan and 2014 Equity Incentive Plan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="label: EquityIncentivePlan2005AndEquityIncentivePlan2014Member to tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:label="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="EquityAwardsWeightedAverageRemainingContractualTermAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1" xml:lang="en-US" id="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1">Equity Awards, Weighted-Average Remaining Contractual Term [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1" xlink:title="label: EquityAwardsWeightedAverageRemainingContractualTermAbstract to tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xml:lang="en-US" id="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract">Remaining Term [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="label: EquityAwardsWeightedAverageRemainingContractualTermAbstract to tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityAwardsAggregateIntrinsicValueAbstract" xlink:label="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="EquityAwardsAggregateIntrinsicValueAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1" xml:lang="en-US" id="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1">Equity Awards, Aggregate Intrinsic Value [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1" xlink:title="label: EquityAwardsAggregateIntrinsicValueAbstract to tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EquityAwardsAggregateIntrinsicValueAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EquityAwardsAggregateIntrinsicValueAbstract" xml:lang="en-US" id="tact_EquityAwardsAggregateIntrinsicValueAbstract">Aggregate Intrinsic Value [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="tact_EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="label: EquityAwardsAggregateIntrinsicValueAbstract to tact_EquityAwardsAggregateIntrinsicValueAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl">The weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were exercised during the period.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Exercises in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue">Exercised (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl">Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans for which the right to exercise has lapsed under the terms of the plan agreements.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Expirations, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue">Expired (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2014Member_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_EquityIncentivePlan2014Member_lbl" xml:lang="en-US" id="tact_EquityIncentivePlan2014Member_lbl">Stock incentive plan which provides for awards to executives, key employees, directors and consultants.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2014Member_lbl" xlink:title="label: EquityIncentivePlan2014Member to tact_EquityIncentivePlan2014Member_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2014Member_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EquityIncentivePlan2014Member_lbl1" xml:lang="en-US" id="tact_EquityIncentivePlan2014Member_lbl1">Equity Incentive Plan 2014 [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2014Member_lbl1" xlink:title="label: EquityIncentivePlan2014Member to tact_EquityIncentivePlan2014Member_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2014Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EquityIncentivePlan2014Member" xml:lang="en-US" id="tact_EquityIncentivePlan2014Member">2014 Equity Incentive Plan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2014Member" xlink:title="label: EquityIncentivePlan2014Member to tact_EquityIncentivePlan2014Member" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_RelatedPartyTransactionAbstract" xlink:label="RelatedPartyTransactionAbstract" xlink:title="RelatedPartyTransactionAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_RelatedPartyTransactionAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_RelatedPartyTransactionAbstract_lbl1" xml:lang="en-US" id="tact_RelatedPartyTransactionAbstract_lbl1">Related Party Transaction [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RelatedPartyTransactionAbstract" xlink:to="tact_RelatedPartyTransactionAbstract_lbl1" xlink:title="label: RelatedPartyTransactionAbstract to tact_RelatedPartyTransactionAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_RelatedPartyTransactionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_RelatedPartyTransactionAbstract" xml:lang="en-US" id="tact_RelatedPartyTransactionAbstract">Related Party Transaction [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RelatedPartyTransactionAbstract" xlink:to="tact_RelatedPartyTransactionAbstract" xlink:title="label: RelatedPartyTransactionAbstract to tact_RelatedPartyTransactionAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TheOneGroupHospitalityIncMember" xlink:label="TheOneGroupHospitalityIncMember" xlink:title="TheOneGroupHospitalityIncMember" />
    <link:label xlink:type="resource" xlink:label="tact_TheOneGroupHospitalityIncMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TheOneGroupHospitalityIncMember_lbl" xml:lang="en-US" id="tact_TheOneGroupHospitalityIncMember_lbl">A global hospitality company that develops and operates upscale, high-energy restaurants and lounges and provides hospitality management services for hotels, casinos and other high-end venues both nationally and internationally. One of the Company's directors serves as President and Chief Executive Officer of this entity.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TheOneGroupHospitalityIncMember" xlink:to="tact_TheOneGroupHospitalityIncMember_lbl" xlink:title="label: TheOneGroupHospitalityIncMember to tact_TheOneGroupHospitalityIncMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TheOneGroupHospitalityIncMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TheOneGroupHospitalityIncMember_lbl1" xml:lang="en-US" id="tact_TheOneGroupHospitalityIncMember_lbl1">The One Group Hospitality, Inc [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TheOneGroupHospitalityIncMember" xlink:to="tact_TheOneGroupHospitalityIncMember_lbl1" xlink:title="label: TheOneGroupHospitalityIncMember to tact_TheOneGroupHospitalityIncMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TheOneGroupHospitalityIncMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TheOneGroupHospitalityIncMember" xml:lang="en-US" id="tact_TheOneGroupHospitalityIncMember">The One Group Hospitality, Inc [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TheOneGroupHospitalityIncMember" xlink:to="tact_TheOneGroupHospitalityIncMember" xlink:title="label: TheOneGroupHospitalityIncMember to tact_TheOneGroupHospitalityIncMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:label="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:title="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl" xml:lang="en-US" id="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl">Tabular disclosure of supplemental information for the statement of cash flows related to operating leases.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:to="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl" xlink:title="label: LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock to tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1" xml:lang="en-US" id="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1">Lessee, Operating Lease, Supplemental Disclosure for Cash Flows [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:to="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1" xlink:title="label: LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock to tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xml:lang="en-US" id="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock">Cash Flows for Operating Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:to="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:title="label: LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock to tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:label="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:title="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl" xml:lang="en-US" id="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl">Tabular disclosure of information related to lessee's operating leases, including weighted average lease term and discount rate.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:to="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl" xlink:title="label: LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock to tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1" xml:lang="en-US" id="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1">Lessee, Operating Lease, Lease Term and Discount Rate [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:to="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1" xlink:title="label: LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock to tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xml:lang="en-US" id="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock">Additional Information Related to Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:to="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:title="label: LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock to tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl">The exercise price of awards granted under the plans as a percentage of the fair market value of the Company's common stock at the date of grant.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1">Share-based Compensation Arrangement by Share-based Payment Award, Exercise Price as Percentage of Fair Market Value of Common Stock at Date of Grant</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant">Exercise price as a percentage of fair market value of common stock at date of grant</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl">The number of stock incentive plans.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1">Share-based Compensation Arrangement by Share-based Payment Award, Number of stock incentive plans</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans">Number of stock incentive plans</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TransactMember" xlink:label="TransactMember" xlink:title="TransactMember" />
    <link:label xlink:type="resource" xlink:label="tact_TransactMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TransactMember_lbl" xml:lang="en-US" id="tact_TransactMember_lbl">The business is managed as one segment: the design, development and marketing of software-driven technology and printing solutions and the sale of printer and terminal related software, services, supplies, and spare parts.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactMember" xlink:to="tact_TransactMember_lbl" xlink:title="label: TransactMember to tact_TransactMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TransactMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TransactMember_lbl1" xml:lang="en-US" id="tact_TransactMember_lbl1">Transact [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactMember" xlink:to="tact_TransactMember_lbl1" xlink:title="label: TransactMember to tact_TransactMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TransactMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TransactMember" xml:lang="en-US" id="tact_TransactMember">Transact [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactMember" xlink:to="tact_TransactMember" xlink:title="label: TransactMember to tact_TransactMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:label="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:title="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl" xml:lang="en-US" id="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl">Tabular disclosure of the reconciliation of net income (loss) to earnings before interest, taxes, depreciation and amortization (EBITDA) and adjusted EBITDA.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:to="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl" xlink:title="label: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock to tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl1" xml:lang="en-US" id="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl1">Reconciliation of Net Income (Loss) to EBITDA and Adjusted EBITDA [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:to="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl1" xlink:title="label: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock to tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xml:lang="en-US" id="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock">Reconciliation of Net (Loss) Income to EBITDA and Adjusted EBITDA</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:to="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:title="label: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock to tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:label="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:title="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract_lbl1" xml:lang="en-US" id="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract_lbl1">Reconciliation of Net Income (Loss) to EBITDA and Adjusted EBITDA [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract_lbl1" xlink:title="label: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xml:lang="en-US" id="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract">Reconciliation of Net (Loss) Income to EBITDA and Adjusted EBITDA [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:title="label: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:label="EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="EarningsBeforeInterestTaxesDepreciationAndAmortization" />
    <link:label xlink:type="resource" xlink:label="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl" xml:lang="en-US" id="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl">Earnings before interest, taxes, depreciation and amortization (EBITDA).</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:to="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl" xlink:title="label: EarningsBeforeInterestTaxesDepreciationAndAmortization to tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1" xml:lang="en-US" id="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1">Earnings Before Interest, Taxes, Depreciation and Amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:to="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1" xlink:title="label: EarningsBeforeInterestTaxesDepreciationAndAmortization to tact_EarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization" xml:lang="en-US" id="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization">EBITDA</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:to="tact_EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="label: EarningsBeforeInterestTaxesDepreciationAndAmortization to tact_EarningsBeforeInterestTaxesDepreciationAndAmortization" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:label="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" />
    <link:label xlink:type="resource" xlink:label="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl" xml:lang="en-US" id="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl">Earnings before interest, taxes, depreciation and amortization (EBITDA) after adjustments for special items and non-recurring expenses.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:to="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl" xlink:title="label: AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization to tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1" xml:lang="en-US" id="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1">Adjusted Earnings Before Interest, Taxes, Depreciation and Amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:to="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1" xlink:title="label: AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization to tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xml:lang="en-US" id="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization">Adjusted EBITDA</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:to="tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="label: AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization to tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" />
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>14
<FILENAME>tact-20241231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 25.3.1.5296 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" />
  <link:roleRef roleURI="http://transact-tech.com/role/RelatedPartyTransactionsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#RelatedPartyTransactionsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#QuarterlyResultsOfOperationsUnauditedDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetailsCalc2" xlink:type="simple" xlink:href="tact-20241231.xsd#LeasesDetailsCalc2" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#LeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformationDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#GeographicAreaInformationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockRepurchaseProgramDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockRepurchaseProgramDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#EarningsPerShareDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesUnrecognizedTaxBenefitsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesComponentsOfIncomeTaxExpenseDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansStockOptionsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansSharebasedCompensationExpenseDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansStockIncentivePlansDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/BorrowingsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#BorrowingsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/RetirementSavingsPlanDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#RetirementSavingsPlanDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReportingOperatingFinancialResultsOfSegmentDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#AccruedLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNetDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#IntangibleAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#FixedAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#InventoriesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesLeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/DescriptionOfBusinessDetails" xlink:type="simple" xlink:href="tact-20241231.xsd#DescriptionOfBusinessDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables" xlink:type="simple" xlink:href="tact-20241231.xsd#QuarterlyResultsOfOperationsUnauditedTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#LeasesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformationTables" xlink:type="simple" xlink:href="tact-20241231.xsd#GeographicAreaInformationTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareTables" xlink:type="simple" xlink:href="tact-20241231.xsd#EarningsPerShareTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansTables" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlansTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReportingTables" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReportingTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#AccruedLiabilitiesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNetTables" xlink:type="simple" xlink:href="tact-20241231.xsd#IntangibleAssetsNetTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetTables" xlink:type="simple" xlink:href="tact-20241231.xsd#FixedAssetsNetTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#InventoriesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" />
  <link:roleRef roleURI="http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure" xlink:type="simple" xlink:href="tact-20241231.xsd#CybersecurityRiskManagementAndStrategyDisclosure" />
  <link:roleRef roleURI="http://transact-tech.com/role/InsiderTradingArrangements" xlink:type="simple" xlink:href="tact-20241231.xsd#InsiderTradingArrangements" />
  <link:roleRef roleURI="http://transact-tech.com/role/SubsequentEvents" xlink:type="simple" xlink:href="tact-20241231.xsd#SubsequentEvents" />
  <link:roleRef roleURI="http://transact-tech.com/role/RelatedPartyTransactions" xlink:type="simple" xlink:href="tact-20241231.xsd#RelatedPartyTransactions" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited" xlink:type="simple" xlink:href="tact-20241231.xsd#QuarterlyResultsOfOperationsUnaudited" />
  <link:roleRef roleURI="http://transact-tech.com/role/Leases" xlink:type="simple" xlink:href="tact-20241231.xsd#Leases" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformation" xlink:type="simple" xlink:href="tact-20241231.xsd#GeographicAreaInformation" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockRepurchaseProgram" xlink:type="simple" xlink:href="tact-20241231.xsd#StockRepurchaseProgram" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShare" xlink:type="simple" xlink:href="tact-20241231.xsd#EarningsPerShare" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxes" xlink:type="simple" xlink:href="tact-20241231.xsd#IncomeTaxes" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlans" xlink:type="simple" xlink:href="tact-20241231.xsd#StockIncentivePlans" />
  <link:roleRef roleURI="http://transact-tech.com/role/Borrowings" xlink:type="simple" xlink:href="tact-20241231.xsd#Borrowings" />
  <link:roleRef roleURI="http://transact-tech.com/role/RetirementSavingsPlan" xlink:type="simple" xlink:href="tact-20241231.xsd#RetirementSavingsPlan" />
  <link:roleRef roleURI="http://transact-tech.com/role/SegmentReporting" xlink:type="simple" xlink:href="tact-20241231.xsd#SegmentReporting" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilities" xlink:type="simple" xlink:href="tact-20241231.xsd#AccruedLiabilities" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNet" xlink:type="simple" xlink:href="tact-20241231.xsd#IntangibleAssetsNet" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNet" xlink:type="simple" xlink:href="tact-20241231.xsd#FixedAssetsNet" />
  <link:roleRef roleURI="http://transact-tech.com/role/Inventories" xlink:type="simple" xlink:href="tact-20241231.xsd#Inventories" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies" xlink:type="simple" xlink:href="tact-20241231.xsd#SummaryOfSignificantAccountingPolicies" />
  <link:roleRef roleURI="http://transact-tech.com/role/DescriptionOfBusiness" xlink:type="simple" xlink:href="tact-20241231.xsd#DescriptionOfBusiness" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfChangesInShareholdersEquity" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfComprehensiveLossIncome" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfOperations" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedStatementsOfOperations" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedBalanceSheetsParenthetical" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tact-20241231.xsd#ConsolidatedBalanceSheets" />
  <link:roleRef roleURI="http://transact-tech.com/role/DocumentAndEntityInformation" xlink:type="simple" xlink:href="tact-20241231.xsd#DocumentAndEntityInformation" />
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DocumentAndEntityInformation">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="CoverAbstract" xlink:title="CoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="DocumentType" xlink:title="DocumentType" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentType" xlink:title="presentation: CoverAbstract to DocumentType" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="AmendmentFlag" xlink:title="AmendmentFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AmendmentFlag" xlink:title="presentation: CoverAbstract to AmendmentFlag" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentAnnualReport" xlink:label="DocumentAnnualReport" xlink:title="DocumentAnnualReport" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentAnnualReport" xlink:title="presentation: CoverAbstract to DocumentAnnualReport" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="DocumentPeriodEndDate" xlink:title="DocumentPeriodEndDate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentPeriodEndDate" xlink:title="presentation: CoverAbstract to DocumentPeriodEndDate" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate" xlink:label="CurrentFiscalYearEndDate" xlink:title="CurrentFiscalYearEndDate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="CurrentFiscalYearEndDate" xlink:title="presentation: CoverAbstract to CurrentFiscalYearEndDate" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus" xlink:label="DocumentFiscalYearFocus" xlink:title="DocumentFiscalYearFocus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentFiscalYearFocus" xlink:title="presentation: CoverAbstract to DocumentFiscalYearFocus" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="DocumentFiscalPeriodFocus" xlink:title="DocumentFiscalPeriodFocus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentFiscalPeriodFocus" xlink:title="presentation: CoverAbstract to DocumentFiscalPeriodFocus" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport" xlink:label="DocumentTransitionReport" xlink:title="DocumentTransitionReport" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentTransitionReport" xlink:title="presentation: CoverAbstract to DocumentTransitionReport" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="EntityFileNumber" xlink:title="EntityFileNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityFileNumber" xlink:title="presentation: CoverAbstract to EntityFileNumber" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="EntityRegistrantName" xlink:title="EntityRegistrantName" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityRegistrantName" xlink:title="presentation: CoverAbstract to EntityRegistrantName" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="EntityCentralIndexKey" xlink:title="EntityCentralIndexKey" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCentralIndexKey" xlink:title="presentation: CoverAbstract to EntityCentralIndexKey" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="EntityIncorporationStateCountryCode" xlink:title="EntityIncorporationStateCountryCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityIncorporationStateCountryCode" xlink:title="presentation: CoverAbstract to EntityIncorporationStateCountryCode" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="EntityTaxIdentificationNumber" xlink:title="EntityTaxIdentificationNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityTaxIdentificationNumber" xlink:title="presentation: CoverAbstract to EntityTaxIdentificationNumber" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="EntityAddressAddressLine1" xlink:title="EntityAddressAddressLine1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressAddressLine1" xlink:title="presentation: CoverAbstract to EntityAddressAddressLine1" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine2" xlink:label="EntityAddressAddressLine2" xlink:title="EntityAddressAddressLine2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressAddressLine2" xlink:title="presentation: CoverAbstract to EntityAddressAddressLine2" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="EntityAddressCityOrTown" xlink:title="EntityAddressCityOrTown" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressCityOrTown" xlink:title="presentation: CoverAbstract to EntityAddressCityOrTown" order="15.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="EntityAddressStateOrProvince" xlink:title="EntityAddressStateOrProvince" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressStateOrProvince" xlink:title="presentation: CoverAbstract to EntityAddressStateOrProvince" order="16.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="EntityAddressPostalZipCode" xlink:title="EntityAddressPostalZipCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressPostalZipCode" xlink:title="presentation: CoverAbstract to EntityAddressPostalZipCode" order="17.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="CityAreaCode" xlink:title="CityAreaCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="CityAreaCode" xlink:title="presentation: CoverAbstract to CityAreaCode" order="18.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="LocalPhoneNumber" xlink:title="LocalPhoneNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="LocalPhoneNumber" xlink:title="presentation: CoverAbstract to LocalPhoneNumber" order="19.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="Security12bTitle" xlink:title="Security12bTitle" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="Security12bTitle" xlink:title="presentation: CoverAbstract to Security12bTitle" order="20.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="TradingSymbol" xlink:title="TradingSymbol" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="TradingSymbol" xlink:title="presentation: CoverAbstract to TradingSymbol" order="21.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="SecurityExchangeName" xlink:title="SecurityExchangeName" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="SecurityExchangeName" xlink:title="presentation: CoverAbstract to SecurityExchangeName" order="22.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="EntityWellKnownSeasonedIssuer" xlink:title="EntityWellKnownSeasonedIssuer" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityWellKnownSeasonedIssuer" xlink:title="presentation: CoverAbstract to EntityWellKnownSeasonedIssuer" order="23.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityVoluntaryFilers" xlink:label="EntityVoluntaryFilers" xlink:title="EntityVoluntaryFilers" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityVoluntaryFilers" xlink:title="presentation: CoverAbstract to EntityVoluntaryFilers" order="24.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus" xlink:label="EntityCurrentReportingStatus" xlink:title="EntityCurrentReportingStatus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCurrentReportingStatus" xlink:title="presentation: CoverAbstract to EntityCurrentReportingStatus" order="25.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent" xlink:label="EntityInteractiveDataCurrent" xlink:title="EntityInteractiveDataCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityInteractiveDataCurrent" xlink:title="presentation: CoverAbstract to EntityInteractiveDataCurrent" order="26.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory" xlink:label="EntityFilerCategory" xlink:title="EntityFilerCategory" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityFilerCategory" xlink:title="presentation: CoverAbstract to EntityFilerCategory" order="27.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness" xlink:label="EntitySmallBusiness" xlink:title="EntitySmallBusiness" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntitySmallBusiness" xlink:title="presentation: CoverAbstract to EntitySmallBusiness" order="28.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="EntityEmergingGrowthCompany" xlink:title="EntityEmergingGrowthCompany" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityEmergingGrowthCompany" xlink:title="presentation: CoverAbstract to EntityEmergingGrowthCompany" order="29.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_IcfrAuditorAttestationFlag" xlink:label="IcfrAuditorAttestationFlag" xlink:title="IcfrAuditorAttestationFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="IcfrAuditorAttestationFlag" xlink:title="presentation: CoverAbstract to IcfrAuditorAttestationFlag" order="30.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFinStmtErrorCorrectionFlag" xlink:label="DocumentFinStmtErrorCorrectionFlag" xlink:title="DocumentFinStmtErrorCorrectionFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentFinStmtErrorCorrectionFlag" xlink:title="presentation: CoverAbstract to DocumentFinStmtErrorCorrectionFlag" order="31.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany" xlink:label="EntityShellCompany" xlink:title="EntityShellCompany" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityShellCompany" xlink:title="presentation: CoverAbstract to EntityShellCompany" order="32.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityPublicFloat" xlink:label="EntityPublicFloat" xlink:title="EntityPublicFloat" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityPublicFloat" xlink:title="presentation: CoverAbstract to EntityPublicFloat" order="33.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="EntityCommonStockSharesOutstanding" xlink:title="EntityCommonStockSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCommonStockSharesOutstanding" xlink:title="presentation: CoverAbstract to EntityCommonStockSharesOutstanding" order="34.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorFirmId" xlink:label="AuditorFirmId" xlink:title="AuditorFirmId" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AuditorFirmId" xlink:title="presentation: CoverAbstract to AuditorFirmId" order="35.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorName" xlink:label="AuditorName" xlink:title="AuditorName" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AuditorName" xlink:title="presentation: CoverAbstract to AuditorName" order="36.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorLocation" xlink:label="AuditorLocation" xlink:title="AuditorLocation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AuditorLocation" xlink:title="presentation: CoverAbstract to AuditorLocation" order="37.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ClassOfStockDomain" xlink:to="SeriesAPreferredStockMember" xlink:title="presentation: ClassOfStockDomain to SeriesAPreferredStockMember" order="0.0" 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="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="presentation: StatementClassOfStockAxis to ClassOfStockDomain" order="0.0" 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="StatementTable" xlink:to="StatementClassOfStockAxis" xlink:title="presentation: StatementTable to StatementClassOfStockAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="CashAndCashEquivalentsAtCarryingValue" xlink:title="presentation: AssetsCurrentAbstract to CashAndCashEquivalentsAtCarryingValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="AccountsReceivableNetCurrent" xlink:title="presentation: AssetsCurrentAbstract to AccountsReceivableNetCurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="InventoryNet" xlink:title="presentation: AssetsCurrentAbstract to InventoryNet" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidTaxes" xlink:label="PrepaidTaxes" xlink:title="PrepaidTaxes" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="PrepaidTaxes" xlink:title="presentation: AssetsCurrentAbstract to PrepaidTaxes" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="OtherAssetsCurrent" xlink:title="presentation: AssetsCurrentAbstract to OtherAssetsCurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="AssetsCurrent" xlink:title="presentation: AssetsCurrentAbstract to AssetsCurrent" order="5.0" 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="AssetsAbstract" xlink:to="AssetsCurrentAbstract" xlink:title="presentation: AssetsAbstract to AssetsCurrentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="presentation: AssetsAbstract to PropertyPlantAndEquipmentNet" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="OperatingLeaseRightOfUseAsset" xlink:title="presentation: AssetsAbstract to OperatingLeaseRightOfUseAsset" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill" xlink:label="Goodwill" xlink:title="Goodwill" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="Goodwill" xlink:title="presentation: AssetsAbstract to Goodwill" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="presentation: AssetsAbstract to DeferredIncomeTaxAssetsNet" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="IntangibleAssetsNetExcludingGoodwill" xlink:title="IntangibleAssetsNetExcludingGoodwill" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="IntangibleAssetsNetExcludingGoodwill" xlink:title="presentation: AssetsAbstract to IntangibleAssetsNetExcludingGoodwill" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="OtherAssetsNoncurrent" xlink:title="presentation: AssetsAbstract to OtherAssetsNoncurrent" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsNoncurrent" xlink:label="AssetsNoncurrent" xlink:title="AssetsNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="AssetsNoncurrent" xlink:title="presentation: AssetsAbstract to AssetsNoncurrent" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="Assets" xlink:title="presentation: AssetsAbstract to Assets" order="8.0" 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="StatementLineItems" xlink:to="AssetsAbstract" xlink:title="presentation: StatementLineItems to AssetsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="LiabilitiesCurrentAbstract" xlink:title="LiabilitiesCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="LinesOfCreditCurrent" xlink:title="LinesOfCreditCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="LinesOfCreditCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to LinesOfCreditCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent" xlink:label="AccountsPayableCurrent" xlink:title="AccountsPayableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="AccountsPayableCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to AccountsPayableCurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="AccruedLiabilitiesCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to AccruedLiabilitiesCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="OperatingLeaseLiabilityCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to OperatingLeaseLiabilityCurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to ContractWithCustomerLiabilityCurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="LiabilitiesCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to LiabilitiesCurrent" order="5.0" 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="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilitiesCurrentAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilitiesCurrentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to ContractWithCustomerLiabilityNoncurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="OperatingLeaseLiabilityNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to OperatingLeaseLiabilityNoncurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="OtherLiabilitiesNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to OtherLiabilitiesNoncurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="LiabilitiesNoncurrent" xlink:title="LiabilitiesNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilitiesNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilitiesNoncurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities" xlink:label="Liabilities" xlink:title="Liabilities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="Liabilities" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to Liabilities" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="CommitmentsAndContingencies" xlink:title="CommitmentsAndContingencies" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="CommitmentsAndContingencies" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to CommitmentsAndContingencies" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue" xlink:label="PreferredStockValue" xlink:title="PreferredStockValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockValue" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockValue" xlink:title="presentation: StockholdersEquityAbstract to CommonStockValue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="AdditionalPaidInCapitalCommonStock" xlink:title="AdditionalPaidInCapitalCommonStock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="AdditionalPaidInCapitalCommonStock" xlink:title="presentation: StockholdersEquityAbstract to AdditionalPaidInCapitalCommonStock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="presentation: StockholdersEquityAbstract to RetainedEarningsAccumulatedDeficit" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="presentation: StockholdersEquityAbstract to AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockValue" xlink:label="TreasuryStockValue" xlink:title="TreasuryStockValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="TreasuryStockValue" xlink:title="presentation: StockholdersEquityAbstract to TreasuryStockValue" order="5.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="StockholdersEquity" xlink:title="presentation: StockholdersEquityAbstract to StockholdersEquity" order="6.0" 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="LiabilitiesAndStockholdersEquityAbstract" xlink:to="StockholdersEquityAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to StockholdersEquityAbstract" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilitiesAndStockholdersEquity" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilitiesAndStockholdersEquity" order="8.0" 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="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="presentation: StatementLineItems to LiabilitiesAndStockholdersEquityAbstract" order="1.0" 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="StatementTable" xlink:to="StatementLineItems" xlink:title="presentation: StatementTable to StatementLineItems" order="1.0" 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="StatementOfFinancialPositionAbstract" xlink:to="StatementTable" xlink:title="presentation: StatementOfFinancialPositionAbstract to StatementTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ClassOfStockDomain" xlink:to="SeriesAPreferredStockMember" xlink:title="presentation: ClassOfStockDomain to SeriesAPreferredStockMember" order="0.0" 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="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="presentation: StatementClassOfStockAxis to ClassOfStockDomain" order="0.0" 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="StatementTable" xlink:to="StatementClassOfStockAxis" xlink:title="presentation: StatementTable to StatementClassOfStockAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="presentation: AssetsCurrentAbstract to AllowanceForDoubtfulAccountsReceivableCurrent" order="0.0" 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="AssetsAbstract" xlink:to="AssetsCurrentAbstract" xlink:title="presentation: AssetsAbstract to AssetsCurrentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="presentation: AssetsAbstract to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="presentation: AssetsAbstract to FiniteLivedIntangibleAssetsAccumulatedAmortization" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementLineItems" xlink:to="AssetsAbstract" xlink:title="presentation: StatementLineItems to AssetsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="PreferredStockParOrStatedValuePerShare" xlink:title="PreferredStockParOrStatedValuePerShare" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockParOrStatedValuePerShare" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockParOrStatedValuePerShare" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="PreferredStockSharesAuthorized" xlink:title="PreferredStockSharesAuthorized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockSharesAuthorized" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockSharesAuthorized" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="PreferredStockSharesIssued" xlink:title="PreferredStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockSharesIssued" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockSharesIssued" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="PreferredStockSharesOutstanding" xlink:title="PreferredStockSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockSharesOutstanding" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockSharesOutstanding" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="CommonStockParOrStatedValuePerShare" xlink:title="CommonStockParOrStatedValuePerShare" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockParOrStatedValuePerShare" xlink:title="presentation: StockholdersEquityAbstract to CommonStockParOrStatedValuePerShare" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="CommonStockSharesAuthorized" xlink:title="CommonStockSharesAuthorized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesAuthorized" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesAuthorized" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesIssued" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesIssued" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="CommonStockSharesOutstanding" xlink:title="CommonStockSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesOutstanding" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesOutstanding" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonShares" xlink:label="TreasuryStockCommonShares" xlink:title="TreasuryStockCommonShares" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="TreasuryStockCommonShares" xlink:title="presentation: StockholdersEquityAbstract to TreasuryStockCommonShares" order="8.0" 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="LiabilitiesAndStockholdersEquityAbstract" xlink:to="StockholdersEquityAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to StockholdersEquityAbstract" order="0.0" 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="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="presentation: StatementLineItems to LiabilitiesAndStockholdersEquityAbstract" order="1.0" 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="StatementTable" xlink:to="StatementLineItems" xlink:title="presentation: StatementTable to StatementLineItems" order="1.0" 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="StatementOfFinancialPositionAbstract" xlink:to="StatementTable" xlink:title="presentation: StatementOfFinancialPositionAbstract to StatementTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfOperations">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" xlink:title="IncomeStatementAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: IncomeStatementAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfRevenue" xlink:label="CostOfRevenue" xlink:title="CostOfRevenue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="CostOfRevenue" xlink:title="presentation: IncomeStatementAbstract to CostOfRevenue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="GrossProfit" xlink:title="presentation: IncomeStatementAbstract to GrossProfit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="OperatingExpensesAbstract" xlink:title="OperatingExpensesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="ResearchAndDevelopmentExpense" xlink:title="ResearchAndDevelopmentExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="ResearchAndDevelopmentExpense" xlink:title="presentation: OperatingExpensesAbstract to ResearchAndDevelopmentExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="SellingAndMarketingExpense" xlink:title="SellingAndMarketingExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="SellingAndMarketingExpense" xlink:title="presentation: OperatingExpensesAbstract to SellingAndMarketingExpense" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="GeneralAndAdministrativeExpense" xlink:title="GeneralAndAdministrativeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="GeneralAndAdministrativeExpense" xlink:title="presentation: OperatingExpensesAbstract to GeneralAndAdministrativeExpense" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingExpenses" xlink:label="OperatingExpenses" xlink:title="OperatingExpenses" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="OperatingExpenses" xlink:title="presentation: OperatingExpensesAbstract to OperatingExpenses" order="3.0" 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="IncomeStatementAbstract" xlink:to="OperatingExpensesAbstract" xlink:title="presentation: IncomeStatementAbstract to OperatingExpensesAbstract" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="OperatingIncomeLoss" xlink:title="presentation: IncomeStatementAbstract to OperatingIncomeLoss" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="NonoperatingIncomeExpenseAbstract" xlink:title="NonoperatingIncomeExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="InterestExpenseNonoperating" xlink:title="InterestExpenseNonoperating" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="InterestExpenseNonoperating" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to InterestExpenseNonoperating" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="InterestIncomeDomesticDeposits" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to InterestIncomeDomesticDeposits" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to OtherNonoperatingIncomeExpense" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="NonoperatingIncomeExpense" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to NonoperatingIncomeExpense" order="3.0" 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="IncomeStatementAbstract" xlink:to="NonoperatingIncomeExpenseAbstract" xlink:title="presentation: IncomeStatementAbstract to NonoperatingIncomeExpenseAbstract" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="presentation: IncomeStatementAbstract to IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="IncomeTaxExpenseBenefit" xlink:title="presentation: IncomeStatementAbstract to IncomeTaxExpenseBenefit" order="7.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: IncomeStatementAbstract to NetIncomeLoss" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareDiluted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="EarningsPerShareAbstract" xlink:title="presentation: IncomeStatementAbstract to EarningsPerShareAbstract" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="presentation: EarningsPerShareBasicOtherDisclosuresAbstract to WeightedAverageNumberOfSharesOutstandingBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="presentation: EarningsPerShareBasicOtherDisclosuresAbstract to WeightedAverageNumberOfDilutedSharesOutstanding" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="presentation: IncomeStatementAbstract to EarningsPerShareBasicOtherDisclosuresAbstract" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: StatementOfIncomeAndComprehensiveIncomeAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="presentation: StatementOfIncomeAndComprehensiveIncomeAbstract to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" xlink:title="ComprehensiveIncomeNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="ComprehensiveIncomeNetOfTax" xlink:title="presentation: StatementOfIncomeAndComprehensiveIncomeAbstract to ComprehensiveIncomeNetOfTax" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" xlink:title="StatementOfStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="CommonStockMember" xlink:title="presentation: StatementEquityComponentsAxis to CommonStockMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="AdditionalPaidInCapitalMember" xlink:title="presentation: StatementEquityComponentsAxis to AdditionalPaidInCapitalMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="RetainedEarningsMember" xlink:title="presentation: StatementEquityComponentsAxis to RetainedEarningsMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockCommonMember" xlink:label="TreasuryStockCommonMember" xlink:title="TreasuryStockCommonMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="TreasuryStockCommonMember" xlink:title="presentation: StatementEquityComponentsAxis to TreasuryStockCommonMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="AccumulatedOtherComprehensiveIncomeMember" xlink:title="presentation: StatementEquityComponentsAxis to AccumulatedOtherComprehensiveIncomeMember" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="presentation: StatementEquityComponentsAxis to EquityComponentDomain" order="5.0" 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="StatementTable" xlink:to="StatementEquityComponentsAxis" xlink:title="presentation: StatementTable to StatementEquityComponentsAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockholdersEquity" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockholdersEquity" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="CommonStockSharesIssued" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to CommonStockSharesIssued" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodValueStockOptionsExercised" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodSharesStockOptionsExercised" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:label="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockGrantedDuringPeriodValueSharebasedCompensationForfeited" order="6.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to SharesPaidForTaxWithholdingForShareBasedCompensation" order="7.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="NetIncomeLoss" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to NetIncomeLoss" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity_2" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockholdersEquity_2" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockholdersEquity" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued_2" xlink:title="CommonStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="CommonStockSharesIssued_2" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to CommonStockSharesIssued" order="12.0" 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="StatementLineItems" xlink:to="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="presentation: StatementLineItems to IncreaseDecreaseInStockholdersEquityRollForward" order="0.0" 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="StatementTable" xlink:to="StatementLineItems" xlink:title="presentation: StatementTable to StatementLineItems" order="1.0" 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="StatementOfStockholdersEquityAbstract" xlink:to="StatementTable" xlink:title="presentation: StatementOfStockholdersEquityAbstract to StatementTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" xlink:title="StatementOfCashFlowsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ShareBasedCompensation" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to ShareBasedCompensation" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="DepreciationAndAmortization" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to DepreciationAndAmortization" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to DeferredIncomeTaxExpenseBenefit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:label="ForeignCurrencyTransactionGainLossUnrealized" xlink:title="ForeignCurrencyTransactionGainLossUnrealized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ForeignCurrencyTransactionGainLossUnrealized" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to ForeignCurrencyTransactionGainLossUnrealized" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="IncreaseDecreaseInAccountsReceivable" xlink:title="IncreaseDecreaseInAccountsReceivable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInAccountsReceivable" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInAccountsReceivable" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="IncreaseDecreaseInOtherReceivables" xlink:title="IncreaseDecreaseInOtherReceivables" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInOtherReceivables" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInOtherReceivables" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInInventories" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInInventories" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidTaxes" xlink:label="IncreaseDecreaseInPrepaidTaxes" xlink:title="IncreaseDecreaseInPrepaidTaxes" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInPrepaidTaxes" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInPrepaidTaxes" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="IncreaseDecreaseInOtherOperatingAssets" xlink:title="IncreaseDecreaseInOtherOperatingAssets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInOtherOperatingAssets" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInOtherOperatingAssets" order="4.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInAccountsPayable" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInAccountsPayable" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to IncreaseDecreaseInOperatingCapitalAbstract" order="4.0" 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="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInOperatingActivities" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to NetCashProvidedByUsedInOperatingActivities" order="2.0" 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="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInOperatingActivitiesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="presentation: NetCashProvidedByUsedInInvestingActivitiesAbstract to PaymentsToAcquirePropertyPlantAndEquipment" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInInvestingActivities" xlink:title="presentation: NetCashProvidedByUsedInInvestingActivitiesAbstract to NetCashProvidedByUsedInInvestingActivities" order="1.0" 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="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInInvestingActivitiesAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ProceedsFromLinesOfCredit" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to ProceedsFromLinesOfCredit" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to PaymentsRelatedToTaxWithholdingForShareBasedCompensation" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfLoanCosts" xlink:label="PaymentsOfLoanCosts" xlink:title="PaymentsOfLoanCosts" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="PaymentsOfLoanCosts" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to PaymentsOfLoanCosts" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInFinancingActivities" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to NetCashProvidedByUsedInFinancingActivities" order="3.0" 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="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInFinancingActivitiesAbstract" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="presentation: StatementOfCashFlowsAbstract to EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_2" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_2" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="SupplementalCashFlowInformationAbstract" xlink:title="SupplementalCashFlowInformationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPaidNet" xlink:label="InterestPaidNet" xlink:title="InterestPaidNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="InterestPaidNet" xlink:title="presentation: SupplementalCashFlowInformationAbstract to InterestPaidNet" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaid" xlink:label="IncomeTaxesPaid" xlink:title="IncomeTaxesPaid" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="IncomeTaxesPaid" xlink:title="presentation: SupplementalCashFlowInformationAbstract to IncomeTaxesPaid" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="CapitalExpendituresIncurredButNotYetPaid" xlink:title="CapitalExpendituresIncurredButNotYetPaid" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="CapitalExpendituresIncurredButNotYetPaid" xlink:title="presentation: SupplementalCashFlowInformationAbstract to CapitalExpendituresIncurredButNotYetPaid" order="2.0" 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="StatementOfCashFlowsAbstract" xlink:to="SupplementalCashFlowInformationAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to SupplementalCashFlowInformationAbstract" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DescriptionOfBusiness">
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DescriptionOfBusinessAbstract" xlink:label="DescriptionOfBusinessAbstract" xlink:title="DescriptionOfBusinessAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NatureOfOperations" xlink:label="NatureOfOperations" xlink:title="NatureOfOperations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DescriptionOfBusinessAbstract" xlink:to="NatureOfOperations" xlink:title="presentation: DescriptionOfBusinessAbstract to NatureOfOperations" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Inventories">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" xlink:title="InventoryDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="InventoryDisclosureTextBlock" xlink:title="InventoryDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryDisclosureTextBlock" xlink:title="presentation: InventoryDisclosureAbstract to InventoryDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNet">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:title="PropertyPlantAndEquipmentDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to PropertyPlantAndEquipmentDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNet">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="IntangibleAssetsDisclosureTextBlock" xlink:title="IntangibleAssetsDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="IntangibleAssetsDisclosureTextBlock" xlink:title="presentation: GoodwillAndIntangibleAssetsDisclosureAbstract to IntangibleAssetsDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilities">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="PayablesAndAccrualsAbstract" xlink:title="PayablesAndAccrualsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:title="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:title="presentation: PayablesAndAccrualsAbstract to AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReporting">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="SegmentReportingDisclosureTextBlock" xlink:title="SegmentReportingDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="SegmentReportingDisclosureTextBlock" xlink:title="presentation: SegmentReportingAbstract to SegmentReportingDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RetirementSavingsPlan">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="CompensationAndRetirementDisclosureAbstract" xlink:title="CompensationAndRetirementDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="CompensationAndEmployeeBenefitPlansTextBlock" xlink:title="CompensationAndEmployeeBenefitPlansTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="CompensationAndEmployeeBenefitPlansTextBlock" xlink:title="presentation: CompensationAndRetirementDisclosureAbstract to CompensationAndEmployeeBenefitPlansTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Borrowings">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="DebtDisclosureTextBlock" xlink:title="DebtDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="DebtDisclosureTextBlock" xlink:title="presentation: DebtDisclosureAbstract to DebtDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlans">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxes">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="IncomeTaxDisclosureTextBlock" xlink:title="IncomeTaxDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="IncomeTaxDisclosureTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to IncomeTaxDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShare">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="EarningsPerShareTextBlock" xlink:title="EarningsPerShareTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareTextBlock" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockRepurchaseProgram">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" xlink:title="EquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockTextBlock" xlink:label="TreasuryStockTextBlock" xlink:title="TreasuryStockTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="TreasuryStockTextBlock" xlink:title="presentation: EquityAbstract to TreasuryStockTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformation">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentsGeographicalAreasAbstract" xlink:label="SegmentsGeographicalAreasAbstract" xlink:title="SegmentsGeographicalAreasAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_GeographicAreaInformationTextBlock" xlink:label="GeographicAreaInformationTextBlock" xlink:title="GeographicAreaInformationTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentsGeographicalAreasAbstract" xlink:to="GeographicAreaInformationTextBlock" xlink:title="presentation: SegmentsGeographicalAreasAbstract to GeographicAreaInformationTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Leases">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" xlink:title="LeasesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="LesseeOperatingLeasesTextBlock" xlink:title="LesseeOperatingLeasesTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeasesTextBlock" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeasesTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="QuarterlyFinancialInformationDisclosureAbstract" xlink:title="QuarterlyFinancialInformationDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="QuarterlyFinancialInformationTextBlock" xlink:title="QuarterlyFinancialInformationTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="QuarterlyFinancialInformationTextBlock" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to QuarterlyFinancialInformationTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RelatedPartyTransactions">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="RelatedPartyTransactionsAbstract" xlink:title="RelatedPartyTransactionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:label="RelatedPartyTransactionsDisclosureTextBlock" xlink:title="RelatedPartyTransactionsDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RelatedPartyTransactionsAbstract" xlink:to="RelatedPartyTransactionsDisclosureTextBlock" xlink:title="presentation: RelatedPartyTransactionsAbstract to RelatedPartyTransactionsDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SubsequentEvents">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="SubsequentEventsAbstract" xlink:title="SubsequentEventsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="SubsequentEventsTextBlock" xlink:title="SubsequentEventsTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SubsequentEventsAbstract" xlink:to="SubsequentEventsTextBlock" xlink:title="presentation: SubsequentEventsAbstract to SubsequentEventsTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InsiderTradingArrangements">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingArrLineItems" xlink:label="InsiderTradingArrLineItems" xlink:title="InsiderTradingArrLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrAdoptedFlag" xlink:label="Rule10b51ArrAdoptedFlag" xlink:title="Rule10b51ArrAdoptedFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InsiderTradingArrLineItems" xlink:to="Rule10b51ArrAdoptedFlag" xlink:title="presentation: InsiderTradingArrLineItems to Rule10b51ArrAdoptedFlag" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrAdoptedFlag" xlink:label="NonRule10b51ArrAdoptedFlag" xlink:title="NonRule10b51ArrAdoptedFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InsiderTradingArrLineItems" xlink:to="NonRule10b51ArrAdoptedFlag" xlink:title="presentation: InsiderTradingArrLineItems to NonRule10b51ArrAdoptedFlag" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrTrmntdFlag" xlink:label="Rule10b51ArrTrmntdFlag" xlink:title="Rule10b51ArrTrmntdFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InsiderTradingArrLineItems" xlink:to="Rule10b51ArrTrmntdFlag" xlink:title="presentation: InsiderTradingArrLineItems to Rule10b51ArrTrmntdFlag" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrTrmntdFlag" xlink:label="NonRule10b51ArrTrmntdFlag" xlink:title="NonRule10b51ArrTrmntdFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InsiderTradingArrLineItems" xlink:to="NonRule10b51ArrTrmntdFlag" xlink:title="presentation: InsiderTradingArrLineItems to NonRule10b51ArrTrmntdFlag" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:label="CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:title="CybersecurityRiskManagementStrategyAndGovernanceAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:label="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:title="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementProcessesIntegratedFlag" xlink:label="CybersecurityRiskManagementProcessesIntegratedFlag" xlink:title="CybersecurityRiskManagementProcessesIntegratedFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:to="CybersecurityRiskManagementProcessesIntegratedFlag" xlink:title="presentation: CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock to CybersecurityRiskManagementProcessesIntegratedFlag" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock" xlink:label="CybersecurityRiskManagementProcessesIntegratedTextBlock" xlink:title="CybersecurityRiskManagementProcessesIntegratedTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:to="CybersecurityRiskManagementProcessesIntegratedTextBlock" xlink:title="presentation: CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock to CybersecurityRiskManagementProcessesIntegratedTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementThirdPartyEngagedFlag" xlink:label="CybersecurityRiskManagementThirdPartyEngagedFlag" xlink:title="CybersecurityRiskManagementThirdPartyEngagedFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:to="CybersecurityRiskManagementThirdPartyEngagedFlag" xlink:title="presentation: CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock to CybersecurityRiskManagementThirdPartyEngagedFlag" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xlink:label="CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xlink:title="CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:to="CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" xlink:title="presentation: CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock to CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xlink:label="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xlink:title="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:to="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" xlink:title="presentation: CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock to CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xlink:label="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xlink:title="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:to="CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" xlink:title="presentation: CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock to CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock" order="5.0" 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="CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:to="CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" xlink:title="presentation: CybersecurityRiskManagementStrategyAndGovernanceAbstract to CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:label="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:title="CybersecurityRiskBoardOfDirectorsOversightTextBlock" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:label="CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:title="CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:title="presentation: CybersecurityRiskBoardOfDirectorsOversightTextBlock to CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:label="CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:title="CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" xlink:title="presentation: CybersecurityRiskBoardOfDirectorsOversightTextBlock to CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskRoleOfManagementTextBlock" xlink:label="CybersecurityRiskRoleOfManagementTextBlock" xlink:title="CybersecurityRiskRoleOfManagementTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="CybersecurityRiskRoleOfManagementTextBlock" xlink:title="presentation: CybersecurityRiskBoardOfDirectorsOversightTextBlock to CybersecurityRiskRoleOfManagementTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xlink:label="CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xlink:title="CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" xlink:title="presentation: CybersecurityRiskBoardOfDirectorsOversightTextBlock to CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xlink:label="CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xlink:title="CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" xlink:title="presentation: CybersecurityRiskBoardOfDirectorsOversightTextBlock to CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xlink:label="CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xlink:title="CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" xlink:title="presentation: CybersecurityRiskBoardOfDirectorsOversightTextBlock to CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xlink:label="CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xlink:title="CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" xlink:title="presentation: CybersecurityRiskBoardOfDirectorsOversightTextBlock to CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd#cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xlink:label="CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xlink:title="CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:to="CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" xlink:title="presentation: CybersecurityRiskBoardOfDirectorsOversightTextBlock to CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" order="7.0" 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="CybersecurityRiskManagementStrategyAndGovernanceAbstract" xlink:to="CybersecurityRiskBoardOfDirectorsOversightTextBlock" xlink:title="presentation: CybersecurityRiskManagementStrategyAndGovernanceAbstract to CybersecurityRiskBoardOfDirectorsOversightTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="ConsolidationPolicyTextBlock" xlink:title="ConsolidationPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ConsolidationPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ConsolidationPolicyTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates" xlink:label="UseOfEstimates" xlink:title="UseOfEstimates" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="UseOfEstimates" xlink:title="presentation: AccountingPoliciesAbstract to UseOfEstimates" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="CashAndCashEquivalentsPolicyTextBlock" xlink:title="CashAndCashEquivalentsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="CashAndCashEquivalentsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to CashAndCashEquivalentsPolicyTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:label="TradeAndOtherAccountsReceivablePolicy" xlink:title="TradeAndOtherAccountsReceivablePolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="TradeAndOtherAccountsReceivablePolicy" xlink:title="presentation: AccountingPoliciesAbstract to TradeAndOtherAccountsReceivablePolicy" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="InventoryPolicyTextBlock" xlink:title="InventoryPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="InventoryPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to InventoryPolicyTextBlock" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to PropertyPlantAndEquipmentPolicyTextBlock" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="LesseeLeasesPolicyTextBlock" xlink:title="LesseeLeasesPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="LesseeLeasesPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to LesseeLeasesPolicyTextBlock" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:title="GoodwillAndIntangibleAssetsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to GoodwillAndIntangibleAssetsPolicyTextBlock" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="RevenueFromContractWithCustomerPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to RevenueFromContractWithCustomerPolicyTextBlock" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="ConcentrationRiskCreditRisk" xlink:title="ConcentrationRiskCreditRisk" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ConcentrationRiskCreditRisk" xlink:title="presentation: AccountingPoliciesAbstract to ConcentrationRiskCreditRisk" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="ResearchAndDevelopmentExpensePolicy" xlink:title="ResearchAndDevelopmentExpensePolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ResearchAndDevelopmentExpensePolicy" xlink:title="presentation: AccountingPoliciesAbstract to ResearchAndDevelopmentExpensePolicy" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="AdvertisingCostsPolicyTextBlock" xlink:title="AdvertisingCostsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="AdvertisingCostsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to AdvertisingCostsPolicyTextBlock" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="IncomeTaxPolicyTextBlock" xlink:title="IncomeTaxPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="IncomeTaxPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to IncomeTaxPolicyTextBlock" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="presentation: AccountingPoliciesAbstract to ShareBasedCompensationOptionAndIncentivePlansPolicy" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="EarningsPerSharePolicyTextBlock" xlink:title="EarningsPerSharePolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="EarningsPerSharePolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to EarningsPerSharePolicyTextBlock" order="15.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:title="NewAccountingPronouncementsPolicyPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to NewAccountingPronouncementsPolicyPolicyTextBlock" order="16.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:label="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:title="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="DisaggregationOfRevenueTableTextBlock" xlink:title="DisaggregationOfRevenueTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="DisaggregationOfRevenueTableTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to DisaggregationOfRevenueTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:title="ContractWithCustomerAssetAndLiabilityTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ContractWithCustomerAssetAndLiabilityTableTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:title="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" xlink:title="InventoryDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="ScheduleOfInventoryCurrentTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="presentation: InventoryDisclosureAbstract to ScheduleOfInventoryCurrentTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="PropertyPlantAndEquipmentTextBlock" xlink:title="PropertyPlantAndEquipmentTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="PropertyPlantAndEquipmentTextBlock" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to PropertyPlantAndEquipmentTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNetTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:title="presentation: GoodwillAndIntangibleAssetsDisclosureAbstract to ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="PayablesAndAccrualsAbstract" xlink:title="PayablesAndAccrualsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:title="ScheduleOfAccruedLiabilitiesTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:title="presentation: PayablesAndAccrualsAbstract to ScheduleOfAccruedLiabilitiesTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReportingTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:title="presentation: SegmentReportingAbstract to ScheduleOfSegmentReportingInformationBySegmentTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:label="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:title="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" xlink:title="presentation: SegmentReportingAbstract to ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:title="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:title="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:title="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:title="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SummaryOfValuationAllowanceTextBlock" xlink:label="SummaryOfValuationAllowanceTextBlock" xlink:title="SummaryOfValuationAllowanceTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="SummaryOfValuationAllowanceTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to SummaryOfValuationAllowanceTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:title="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:title="ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="presentation: EarningsPerShareAbstract to ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformationTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentsGeographicalAreasAbstract" xlink:label="SegmentsGeographicalAreasAbstract" xlink:title="SegmentsGeographicalAreasAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentsGeographicalAreasAbstract" xlink:to="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:title="presentation: SegmentsGeographicalAreasAbstract to ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" xlink:title="LeasesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:label="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:title="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:label="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:title="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:title="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeaseLiabilityMaturityTableTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="QuarterlyFinancialInformationDisclosureAbstract" xlink:title="QuarterlyFinancialInformationDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:title="ScheduleOfQuarterlyFinancialInformationTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to ScheduleOfQuarterlyFinancialInformationTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DescriptionOfBusinessDetails">
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DescriptionOfBusinessAbstract" xlink:label="DescriptionOfBusinessAbstract" xlink:title="DescriptionOfBusinessAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DescriptionOfBusinessAbstract" xlink:to="NumberOfOperatingSegments" xlink:title="presentation: DescriptionOfBusinessAbstract to NumberOfOperatingSegments" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_NumberOfSoftwareSolutions" xlink:label="NumberOfSoftwareSolutions" xlink:title="NumberOfSoftwareSolutions" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DescriptionOfBusinessAbstract" xlink:to="NumberOfSoftwareSolutions" xlink:title="presentation: DescriptionOfBusinessAbstract to NumberOfSoftwareSolutions" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:label="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:title="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:label="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:title="AllowanceForDoubtfulAccountsReceivableRollforward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="presentation: AllowanceForDoubtfulAccountsReceivableRollforward to AllowanceForDoubtfulAccountsReceivableCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="ProvisionForDoubtfulAccounts" xlink:title="ProvisionForDoubtfulAccounts" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="ProvisionForDoubtfulAccounts" xlink:title="presentation: AllowanceForDoubtfulAccountsReceivableRollforward to ProvisionForDoubtfulAccounts" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:title="AllowanceForDoubtfulAccountsReceivableWriteOffs" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:title="presentation: AllowanceForDoubtfulAccountsReceivableRollforward to AllowanceForDoubtfulAccountsReceivableWriteOffs" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent_2" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="AllowanceForDoubtfulAccountsReceivableCurrent_2" xlink:title="presentation: AllowanceForDoubtfulAccountsReceivableRollforward to AllowanceForDoubtfulAccountsReceivableCurrent" order="3.0" 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="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:to="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:title="presentation: AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract to AllowanceForDoubtfulAccountsReceivableRollforward" order="0.0" 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="AccountingPoliciesAbstract" xlink:to="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:title="presentation: AccountingPoliciesAbstract to AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ToolsDiesAndMoldsMember" xlink:label="ToolsDiesAndMoldsMember" xlink:title="ToolsDiesAndMoldsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ToolsDiesAndMoldsMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to ToolsDiesAndMoldsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="MachineryAndEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to MachineryAndEquipmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FurnitureAndOfficeEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FurnitureAndOfficeEquipmentMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ComputerSoftwareAndEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to ComputerSoftwareAndEquipmentMember" order="3.0" 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="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="presentation: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="0.0" 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="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" 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="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" 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="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="RangeAxis" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to RangeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="PropertyPlantAndEquipmentUsefulLife" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to PropertyPlantAndEquipmentUsefulLife" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation" xlink:label="Depreciation" xlink:title="Depreciation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="Depreciation" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to Depreciation" order="1.0" 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="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentAbstract" xlink:title="presentation: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentLineItems" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentLineItems" order="2.0" 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="AccountingPoliciesAbstract" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="presentation: AccountingPoliciesAbstract to ScheduleOfPropertyPlantAndEquipmentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="LesseeLeaseDescriptionTable" xlink:title="LesseeLeaseDescriptionTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FacilityInLasVegasNevadaMember" xlink:label="FacilityInLasVegasNevadaMember" xlink:title="FacilityInLasVegasNevadaMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FacilityInLasVegasNevadaMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FacilityInLasVegasNevadaMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="presentation: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="0.0" 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="LesseeLeaseDescriptionTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="presentation: LesseeLeaseDescriptionTable to PropertyPlantAndEquipmentByTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" 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="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" 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="LesseeLeaseDescriptionTable" xlink:to="RangeAxis" xlink:title="presentation: LesseeLeaseDescriptionTable to RangeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="LesseeLeaseDescriptionLineItems" xlink:title="LesseeLeaseDescriptionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="AssetsAndLiabilitiesLesseeAbstract" xlink:title="AssetsAndLiabilitiesLesseeAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:label="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="presentation: AssetsAndLiabilitiesLesseeAbstract to IncreaseDecreaseInOperatingLeaseRightOfUseAsset" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="presentation: AssetsAndLiabilitiesLesseeAbstract to IncreaseDecreaseInOperatingLeaseLiability" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="LesseeOperatingLeaseRemainingLeaseTerm" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="presentation: AssetsAndLiabilitiesLesseeAbstract to LesseeOperatingLeaseRemainingLeaseTerm" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="AssetsAndLiabilitiesLesseeAbstract" xlink:title="presentation: LesseeLeaseDescriptionLineItems to AssetsAndLiabilitiesLesseeAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeLeaseDescriptionTable" xlink:to="LesseeLeaseDescriptionLineItems" xlink:title="presentation: LesseeLeaseDescriptionTable to LesseeLeaseDescriptionLineItems" order="2.0" 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="AccountingPoliciesAbstract" xlink:to="LesseeLeaseDescriptionTable" xlink:title="presentation: AccountingPoliciesAbstract to LesseeLeaseDescriptionTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:label="GoodwillAndIntangibleAssetImpairment" xlink:title="GoodwillAndIntangibleAssetImpairment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="GoodwillAndIntangibleAssetImpairment" xlink:title="presentation: AccountingPoliciesAbstract to GoodwillAndIntangibleAssetImpairment" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:label="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:title="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:title="presentation: AccountingPoliciesAbstract to TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis" xlink:label="ProductOrServiceAxis" xlink:title="ProductOrServiceAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain" xlink:title="ProductsAndServicesDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FoodServiceTechnologyMember" xlink:label="FoodServiceTechnologyMember" xlink:title="FoodServiceTechnologyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="FoodServiceTechnologyMember" xlink:title="presentation: ProductsAndServicesDomain to FoodServiceTechnologyMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_PosAutomationAndBankingMember" xlink:label="PosAutomationAndBankingMember" xlink:title="PosAutomationAndBankingMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="PosAutomationAndBankingMember" xlink:title="presentation: ProductsAndServicesDomain to PosAutomationAndBankingMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_CasinoAndGamingMember" xlink:label="CasinoAndGamingMember" xlink:title="CasinoAndGamingMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="CasinoAndGamingMember" xlink:title="presentation: ProductsAndServicesDomain to CasinoAndGamingMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TransactServicesGroupMember" xlink:label="TransactServicesGroupMember" xlink:title="TransactServicesGroupMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="TransactServicesGroupMember" xlink:title="presentation: ProductsAndServicesDomain to TransactServicesGroupMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductOrServiceAxis" xlink:to="ProductsAndServicesDomain" xlink:title="presentation: ProductOrServiceAxis to ProductsAndServicesDomain" order="0.0" 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="DisaggregationOfRevenueTable" xlink:to="ProductOrServiceAxis" xlink:title="presentation: DisaggregationOfRevenueTable to ProductOrServiceAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="presentation: SegmentGeographicalDomain to US" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="InternationalMember" xlink:title="presentation: SegmentGeographicalDomain to InternationalMember" order="1.0" 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="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="presentation: StatementGeographicalAxis to SegmentGeographicalDomain" order="0.0" 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="DisaggregationOfRevenueTable" xlink:to="StatementGeographicalAxis" xlink:title="presentation: DisaggregationOfRevenueTable to StatementGeographicalAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: DisaggregationOfRevenueAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" 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="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueAbstract" xlink:title="presentation: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueAbstract" order="0.0" 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="DisaggregationOfRevenueTable" xlink:to="DisaggregationOfRevenueLineItems" xlink:title="presentation: DisaggregationOfRevenueTable to DisaggregationOfRevenueLineItems" order="2.0" 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="AccountingPoliciesAbstract" xlink:to="DisaggregationOfRevenueTable" xlink:title="presentation: AccountingPoliciesAbstract to DisaggregationOfRevenueTable" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ContractWithCustomerRevenueRecognized" xlink:label="ContractWithCustomerRevenueRecognized" xlink:title="ContractWithCustomerRevenueRecognized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ContractWithCustomerRevenueRecognized" xlink:title="presentation: AccountingPoliciesAbstract to ContractWithCustomerRevenueRecognized" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityAbstract" xlink:label="ContractWithCustomerAssetAndLiabilityAbstract" xlink:title="ContractWithCustomerAssetAndLiabilityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="ContractWithCustomerAssetNetCurrent" xlink:title="ContractWithCustomerAssetNetCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerAssetAndLiabilityAbstract" xlink:to="ContractWithCustomerAssetNetCurrent" xlink:title="presentation: ContractWithCustomerAssetAndLiabilityAbstract to ContractWithCustomerAssetNetCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetNetNoncurrent" xlink:label="ContractWithCustomerAssetNetNoncurrent" xlink:title="ContractWithCustomerAssetNetNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerAssetAndLiabilityAbstract" xlink:to="ContractWithCustomerAssetNetNoncurrent" xlink:title="presentation: ContractWithCustomerAssetAndLiabilityAbstract to ContractWithCustomerAssetNetNoncurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:label="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerAssetAndLiabilityAbstract" xlink:to="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="presentation: ContractWithCustomerAssetAndLiabilityAbstract to ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerAssetAndLiabilityAbstract" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="presentation: ContractWithCustomerAssetAndLiabilityAbstract to ContractWithCustomerLiabilityCurrent" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerAssetAndLiabilityAbstract" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="presentation: ContractWithCustomerAssetAndLiabilityAbstract to ContractWithCustomerLiabilityNoncurrent" order="4.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ContractWithCustomerAssetLiabilityNet" xlink:label="ContractWithCustomerAssetLiabilityNet" xlink:title="ContractWithCustomerAssetLiabilityNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerAssetAndLiabilityAbstract" xlink:to="ContractWithCustomerAssetLiabilityNet" xlink:title="presentation: ContractWithCustomerAssetAndLiabilityAbstract to ContractWithCustomerAssetLiabilityNet" order="5.0" 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="AccountingPoliciesAbstract" xlink:to="ContractWithCustomerAssetAndLiabilityAbstract" xlink:title="presentation: AccountingPoliciesAbstract to ContractWithCustomerAssetAndLiabilityAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="presentation: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuePerformanceObligationAbstract" xlink:label="RevenuePerformanceObligationAbstract" xlink:title="RevenuePerformanceObligationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="RevenueRemainingPerformanceObligation" xlink:title="RevenueRemainingPerformanceObligation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenuePerformanceObligationAbstract" xlink:to="RevenueRemainingPerformanceObligation" xlink:title="presentation: RevenuePerformanceObligationAbstract to RevenueRemainingPerformanceObligation" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenuePerformanceObligationAbstract" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="presentation: RevenuePerformanceObligationAbstract to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenuePerformanceObligationAbstract" xlink:title="presentation: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenuePerformanceObligationAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="presentation: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" order="1.0" 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="AccountingPoliciesAbstract" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="presentation: AccountingPoliciesAbstract to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable" xlink:label="ConcentrationRiskTable" xlink:title="ConcentrationRiskTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember" xlink:label="AccountsReceivableMember" xlink:title="AccountsReceivableMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="AccountsReceivableMember" xlink:title="presentation: ConcentrationRiskBenchmarkDomain to AccountsReceivableMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="presentation: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="1.0" 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="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="presentation: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="0.0" 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="ConcentrationRiskTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="presentation: ConcentrationRiskTable to ConcentrationRiskByBenchmarkAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="CustomerConcentrationRiskMember" xlink:title="CustomerConcentrationRiskMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTypeDomain" xlink:to="CustomerConcentrationRiskMember" xlink:title="presentation: ConcentrationRiskTypeDomain to CustomerConcentrationRiskMember" order="0.0" 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="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="presentation: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="0.0" 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="ConcentrationRiskTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="presentation: ConcentrationRiskTable to ConcentrationRiskByTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis" xlink:label="MajorCustomersAxis" xlink:title="MajorCustomersAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain" xlink:label="NameOfMajorCustomerDomain" xlink:title="NameOfMajorCustomerDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_LightWonderGamingIncMember" xlink:label="LightWonderGamingIncMember" xlink:title="LightWonderGamingIncMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NameOfMajorCustomerDomain" xlink:to="LightWonderGamingIncMember" xlink:title="presentation: NameOfMajorCustomerDomain to LightWonderGamingIncMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_InternationalGameTechnologyPlcMember" xlink:label="InternationalGameTechnologyPlcMember" xlink:title="InternationalGameTechnologyPlcMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NameOfMajorCustomerDomain" xlink:to="InternationalGameTechnologyPlcMember" xlink:title="presentation: NameOfMajorCustomerDomain to InternationalGameTechnologyPlcMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MajorCustomersAxis" xlink:to="NameOfMajorCustomerDomain" xlink:title="presentation: MajorCustomersAxis to NameOfMajorCustomerDomain" order="0.0" 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="ConcentrationRiskTable" xlink:to="MajorCustomersAxis" xlink:title="presentation: ConcentrationRiskTable to MajorCustomersAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="ConcentrationRiskLineItems" xlink:title="ConcentrationRiskLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="RisksAndUncertaintiesAbstract" xlink:title="RisksAndUncertaintiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RisksAndUncertaintiesAbstract" xlink:to="ConcentrationRiskPercentage1" xlink:title="presentation: RisksAndUncertaintiesAbstract to ConcentrationRiskPercentage1" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskLineItems" xlink:to="RisksAndUncertaintiesAbstract" xlink:title="presentation: ConcentrationRiskLineItems to RisksAndUncertaintiesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTable" xlink:to="ConcentrationRiskLineItems" xlink:title="presentation: ConcentrationRiskTable to ConcentrationRiskLineItems" order="3.0" 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="AccountingPoliciesAbstract" xlink:to="ConcentrationRiskTable" xlink:title="presentation: AccountingPoliciesAbstract to ConcentrationRiskTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseAbstract" xlink:label="ResearchAndDevelopmentExpenseAbstract" xlink:title="ResearchAndDevelopmentExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="ResearchAndDevelopmentExpense" xlink:title="ResearchAndDevelopmentExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ResearchAndDevelopmentExpenseAbstract" xlink:to="ResearchAndDevelopmentExpense" xlink:title="presentation: ResearchAndDevelopmentExpenseAbstract to ResearchAndDevelopmentExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ResearchAndDevelopmentExpenseAbstract" xlink:title="presentation: AccountingPoliciesAbstract to ResearchAndDevelopmentExpenseAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MarketingAndAdvertisingExpenseAbstract" xlink:label="MarketingAndAdvertisingExpenseAbstract" xlink:title="MarketingAndAdvertisingExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense" xlink:label="AdvertisingExpense" xlink:title="AdvertisingExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MarketingAndAdvertisingExpenseAbstract" xlink:to="AdvertisingExpense" xlink:title="presentation: MarketingAndAdvertisingExpenseAbstract to AdvertisingExpense" order="0.0" 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="AccountingPoliciesAbstract" xlink:to="MarketingAndAdvertisingExpenseAbstract" xlink:title="presentation: AccountingPoliciesAbstract to MarketingAndAdvertisingExpenseAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" xlink:title="InventoryDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:label="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="InventoryRawMaterialsAndSuppliesNetOfReserves" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="presentation: InventoryDisclosureAbstract to InventoryRawMaterialsAndSuppliesNetOfReserves" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="InventoryFinishedGoodsNetOfReserves" xlink:title="InventoryFinishedGoodsNetOfReserves" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryFinishedGoodsNetOfReserves" xlink:title="presentation: InventoryDisclosureAbstract to InventoryFinishedGoodsNetOfReserves" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryNet" xlink:title="presentation: InventoryDisclosureAbstract to InventoryNet" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FixedAssetsExcludingConstructionInProcessMember" xlink:label="FixedAssetsExcludingConstructionInProcessMember" xlink:title="FixedAssetsExcludingConstructionInProcessMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="MachineryAndEquipmentMember" xlink:title="presentation: FixedAssetsExcludingConstructionInProcessMember to MachineryAndEquipmentMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="FurnitureAndOfficeEquipmentMember" xlink:title="presentation: FixedAssetsExcludingConstructionInProcessMember to FurnitureAndOfficeEquipmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="ComputerSoftwareAndEquipmentMember" xlink:title="presentation: FixedAssetsExcludingConstructionInProcessMember to ComputerSoftwareAndEquipmentMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="LeaseholdImprovementsMember" xlink:title="LeaseholdImprovementsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="LeaseholdImprovementsMember" xlink:title="presentation: FixedAssetsExcludingConstructionInProcessMember to LeaseholdImprovementsMember" order="3.0" 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="PropertyPlantAndEquipmentTypeDomain" xlink:to="FixedAssetsExcludingConstructionInProcessMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FixedAssetsExcludingConstructionInProcessMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="presentation: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="0.0" 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="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:label="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="PropertyPlantAndEquipmentNetByTypeAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="PropertyPlantAndEquipmentGross" xlink:title="presentation: PropertyPlantAndEquipmentNetByTypeAbstract to PropertyPlantAndEquipmentGross" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="presentation: PropertyPlantAndEquipmentNetByTypeAbstract to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConstructionInProgressGross" xlink:label="ConstructionInProgressGross" xlink:title="ConstructionInProgressGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="ConstructionInProgressGross" xlink:title="presentation: PropertyPlantAndEquipmentNetByTypeAbstract to ConstructionInProgressGross" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="presentation: PropertyPlantAndEquipmentNetByTypeAbstract to PropertyPlantAndEquipmentNet" order="3.0" 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="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="presentation: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentNetByTypeAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentLineItems" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentLineItems" order="1.0" 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="PropertyPlantAndEquipmentAbstract" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to ScheduleOfPropertyPlantAndEquipmentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="TechnologyBasedIntangibleAssetsMember" xlink:title="TechnologyBasedIntangibleAssetsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="TechnologyBasedIntangibleAssetsMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to TechnologyBasedIntangibleAssetsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PatentsMember" xlink:label="PatentsMember" xlink:title="PatentsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="PatentsMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to PatentsMember" order="1.0" 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="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="presentation: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0.0" 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="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="presentation: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsByMajorClassAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="FiniteLivedIntangibleAssetsGross" xlink:title="FiniteLivedIntangibleAssetsGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsGross" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsGross" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsAccumulatedAmortization" order="1.0" 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="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="presentation: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="AmortizationOfIntangibleAssets" xlink:title="presentation: FiniteLivedIntangibleAssetsLineItems to AmortizationOfIntangibleAssets" order="1.0" 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="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsLineItems" xlink:title="presentation: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsLineItems" order="1.0" 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="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="presentation: GoodwillAndIntangibleAssetsDisclosureAbstract to ScheduleOfFiniteLivedIntangibleAssetsTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="PayablesAndAccrualsAbstract" xlink:title="PayablesAndAccrualsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="EmployeeRelatedLiabilitiesCurrent" xlink:title="EmployeeRelatedLiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="EmployeeRelatedLiabilitiesCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to EmployeeRelatedLiabilitiesCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="TaxesPayableCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to TaxesPayableCurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="AccruedProfessionalFeesCurrent" xlink:title="AccruedProfessionalFeesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="AccruedProfessionalFeesCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to AccruedProfessionalFeesCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="OtherLiabilitiesCurrent" xlink:title="OtherLiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="OtherLiabilitiesCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to OtherLiabilitiesCurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="AccruedLiabilitiesCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to AccruedLiabilitiesCurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="NumberOfOperatingSegments" xlink:title="presentation: SegmentReportingAbstract to NumberOfOperatingSegments" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="ConsolidationItemsAxis" xlink:title="ConsolidationItemsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain" xlink:title="ConsolidationItemsDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingSegmentsMember" xlink:label="OperatingSegmentsMember" xlink:title="OperatingSegmentsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConsolidationItemsDomain" xlink:to="OperatingSegmentsMember" xlink:title="presentation: ConsolidationItemsDomain to OperatingSegmentsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MaterialReconcilingItemsMember" xlink:label="MaterialReconcilingItemsMember" xlink:title="MaterialReconcilingItemsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConsolidationItemsDomain" xlink:to="MaterialReconcilingItemsMember" xlink:title="presentation: ConsolidationItemsDomain to MaterialReconcilingItemsMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain" xlink:title="presentation: ConsolidationItemsAxis to ConsolidationItemsDomain" order="0.0" 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="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="ConsolidationItemsAxis" xlink:title="presentation: ScheduleOfSegmentReportingInformationBySegmentTable to ConsolidationItemsAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="StatementBusinessSegmentsAxis" xlink:title="StatementBusinessSegmentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain" xlink:label="SegmentDomain" xlink:title="SegmentDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TransactMember" xlink:label="TransactMember" xlink:title="TransactMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentDomain" xlink:to="TransactMember" xlink:title="presentation: SegmentDomain to TransactMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementBusinessSegmentsAxis" xlink:to="SegmentDomain" xlink:title="presentation: StatementBusinessSegmentsAxis to SegmentDomain" order="0.0" 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="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="StatementBusinessSegmentsAxis" xlink:title="presentation: ScheduleOfSegmentReportingInformationBySegmentTable to StatementBusinessSegmentsAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="SegmentReportingInformationLineItems" xlink:title="SegmentReportingInformationLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationProfitLossAbstract" xlink:label="SegmentReportingInformationProfitLossAbstract" xlink:title="SegmentReportingInformationProfitLossAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostDirectMaterial" xlink:label="CostDirectMaterial" xlink:title="CostDirectMaterial" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="CostDirectMaterial" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to CostDirectMaterial" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:label="CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:title="CompensationExpenseExcludingCostOfGoodAndServiceSold" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="CompensationExpenseExcludingCostOfGoodAndServiceSold" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to CompensationExpenseExcludingCostOfGoodAndServiceSold" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProfessionalAndContractServicesExpense" xlink:label="ProfessionalAndContractServicesExpense" xlink:title="ProfessionalAndContractServicesExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="ProfessionalAndContractServicesExpense" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to ProfessionalAndContractServicesExpense" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OccupancyNet" xlink:label="OccupancyNet" xlink:title="OccupancyNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="OccupancyNet" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to OccupancyNet" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MarketingExpense" xlink:label="MarketingExpense" xlink:title="MarketingExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="MarketingExpense" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to MarketingExpense" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InformationTechnologyAndDataProcessing" xlink:label="InformationTechnologyAndDataProcessing" xlink:title="InformationTechnologyAndDataProcessing" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="InformationTechnologyAndDataProcessing" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to InformationTechnologyAndDataProcessing" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeveranceCosts1" xlink:label="SeveranceCosts1" xlink:title="SeveranceCosts1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="SeveranceCosts1" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to SeveranceCosts1" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="DepreciationAndAmortization" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to DepreciationAndAmortization" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingOtherItemAmount" xlink:label="SegmentReportingOtherItemAmount" xlink:title="SegmentReportingOtherItemAmount" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="SegmentReportingOtherItemAmount" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to SegmentReportingOtherItemAmount" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="OperatingIncomeLoss" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to OperatingIncomeLoss" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="InterestIncomeDomesticDeposits" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to InterestIncomeDomesticDeposits" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseNonoperating" xlink:label="InterestExpenseNonoperating" xlink:title="InterestExpenseNonoperating" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="InterestExpenseNonoperating" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to InterestExpenseNonoperating" order="12.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to OtherNonoperatingIncomeExpense" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="IncomeTaxExpenseBenefit" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to IncomeTaxExpenseBenefit" order="14.0" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to NetIncomeLoss" order="15.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingOtherItemCompositionDescription" xlink:label="SegmentReportingOtherItemCompositionDescription" xlink:title="SegmentReportingOtherItemCompositionDescription" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingInformationProfitLossAbstract" xlink:to="SegmentReportingOtherItemCompositionDescription" xlink:title="presentation: SegmentReportingInformationProfitLossAbstract to SegmentReportingOtherItemCompositionDescription" order="16.0" 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="SegmentReportingInformationLineItems" xlink:to="SegmentReportingInformationProfitLossAbstract" xlink:title="presentation: SegmentReportingInformationLineItems to SegmentReportingInformationProfitLossAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="SegmentReportingInformationLineItems" xlink:title="presentation: ScheduleOfSegmentReportingInformationBySegmentTable to SegmentReportingInformationLineItems" order="2.0" 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="SegmentReportingAbstract" xlink:to="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="presentation: SegmentReportingAbstract to ScheduleOfSegmentReportingInformationBySegmentTable" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="ScheduleOfSegmentReportingInformationBySegmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="ChiefExecutiveOfficerMember" xlink:title="ChiefExecutiveOfficerMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="ChiefExecutiveOfficerMember" xlink:title="presentation: TitleOfIndividualWithRelationshipToEntityDomain to ChiefExecutiveOfficerMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="presentation: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain" order="0.0" 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="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="TitleOfIndividualAxis" xlink:title="presentation: ScheduleOfSegmentReportingInformationBySegmentTable to TitleOfIndividualAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="SegmentReportingInformationLineItems" xlink:title="SegmentReportingInformationLineItems" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:label="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:title="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:label="InterestIncomeExpenseNonoperatingNet" xlink:title="InterestIncomeExpenseNonoperatingNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="InterestIncomeExpenseNonoperatingNet" xlink:title="presentation: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to InterestIncomeExpenseNonoperatingNet" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="IncomeTaxExpenseBenefit" xlink:title="presentation: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to IncomeTaxExpenseBenefit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="DepreciationAndAmortization" xlink:title="presentation: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to DepreciationAndAmortization" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:label="EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="EarningsBeforeInterestTaxesDepreciationAndAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="EarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="presentation: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to EarningsBeforeInterestTaxesDepreciationAndAmortization" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="ShareBasedCompensation" xlink:title="presentation: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to ShareBasedCompensation" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:label="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" xlink:title="presentation: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeveranceCosts1" xlink:label="SeveranceCosts1" xlink:title="SeveranceCosts1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:to="SeveranceCosts1" xlink:title="presentation: ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract to SeveranceCosts1" order="7.0" 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="SegmentReportingInformationLineItems" xlink:to="ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" xlink:title="presentation: SegmentReportingInformationLineItems to ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="SegmentReportingInformationLineItems" xlink:title="presentation: ScheduleOfSegmentReportingInformationBySegmentTable to SegmentReportingInformationLineItems" order="1.0" 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="SegmentReportingAbstract" xlink:to="ScheduleOfSegmentReportingInformationBySegmentTable" xlink:title="presentation: SegmentReportingAbstract to ScheduleOfSegmentReportingInformationBySegmentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RetirementSavingsPlanDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="CompensationAndRetirementDisclosureAbstract" xlink:title="CompensationAndRetirementDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:label="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:title="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:title="presentation: CompensationAndRetirementDisclosureAbstract to DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:label="DefinedContributionPlanEmployerMatchingContributionPercent" xlink:title="DefinedContributionPlanEmployerMatchingContributionPercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="DefinedContributionPlanEmployerMatchingContributionPercent" xlink:title="presentation: CompensationAndRetirementDisclosureAbstract to DefinedContributionPlanEmployerMatchingContributionPercent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="DefinedContributionPlanCostRecognized" xlink:title="DefinedContributionPlanCostRecognized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="DefinedContributionPlanCostRecognized" xlink:title="presentation: CompensationAndRetirementDisclosureAbstract to DefinedContributionPlanCostRecognized" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/BorrowingsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:label="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentNameDomain" xlink:to="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="presentation: DebtInstrumentNameDomain to RevolvingCreditFacilitySienaLendingGroupLlcMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain" xlink:title="presentation: DebtInstrumentAxis to DebtInstrumentNameDomain" order="0.0" 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="DebtInstrumentTable" xlink:to="DebtInstrumentAxis" xlink:title="presentation: DebtInstrumentTable to DebtInstrumentAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateAxis" xlink:label="VariableRateAxis" xlink:title="VariableRateAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain" xlink:title="VariableRateDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrimeRateMember" xlink:label="PrimeRateMember" xlink:title="PrimeRateMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="VariableRateDomain" xlink:to="PrimeRateMember" xlink:title="presentation: VariableRateDomain to PrimeRateMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FederalFundsEffectiveSwapRateMember" xlink:label="FederalFundsEffectiveSwapRateMember" xlink:title="FederalFundsEffectiveSwapRateMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="VariableRateDomain" xlink:to="FederalFundsEffectiveSwapRateMember" xlink:title="presentation: VariableRateDomain to FederalFundsEffectiveSwapRateMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="VariableRateAxis" xlink:to="VariableRateDomain" xlink:title="presentation: VariableRateAxis to VariableRateDomain" order="0.0" 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="DebtInstrumentTable" xlink:to="VariableRateAxis" xlink:title="presentation: DebtInstrumentTable to VariableRateAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" 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="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" 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="DebtInstrumentTable" xlink:to="RangeAxis" xlink:title="presentation: DebtInstrumentTable to RangeAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityAbstract" xlink:label="LineOfCreditFacilityAbstract" xlink:title="LineOfCreditFacilityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="presentation: LineOfCreditFacilityAbstract to LineOfCreditFacilityMaximumBorrowingCapacity" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="DebtInstrumentBasisSpreadOnVariableRate1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentBasisSpreadOnVariableRate1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="DebtInstrumentInterestRateStatedPercentage" xlink:title="DebtInstrumentInterestRateStatedPercentage" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentInterestRateStatedPercentage" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentInterestRateStatedPercentage" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFinanceCostsGross" xlink:label="DeferredFinanceCostsGross" xlink:title="DeferredFinanceCostsGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DeferredFinanceCostsGross" xlink:title="presentation: LineOfCreditFacilityAbstract to DeferredFinanceCostsGross" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="presentation: LineOfCreditFacilityAbstract to LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:label="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFinancialCovenantEligibleAccountsReceivable" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventory" xlink:label="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="DebtInstrumentFinancialCovenantEligibleInventory" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFinancialCovenantEligibleInventory" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="LineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="presentation: LineOfCreditFacilityAbstract to LineOfCreditFacilityRemainingBorrowingCapacity" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:label="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:title="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:label="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:title="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentPrincipalAmountOnWhichInterestIsPaid" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:label="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:title="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredDebt" xlink:label="SecuredDebt" xlink:title="SecuredDebt" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="SecuredDebt" xlink:title="presentation: LineOfCreditFacilityAbstract to SecuredDebt" order="15.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityAbstract" xlink:title="presentation: DebtInstrumentLineItems to LineOfCreditFacilityAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentLineItems" xlink:title="presentation: DebtInstrumentTable to DebtInstrumentLineItems" order="3.0" 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="DebtDisclosureAbstract" xlink:to="DebtInstrumentTable" xlink:title="presentation: DebtDisclosureAbstract to DebtInstrumentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2014Member" xlink:title="presentation: PlanNameDomain to EquityIncentivePlan2014Member" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="presentation: PlanNameAxis to PlanNameDomain" order="0.0" 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="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="0.0" 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="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" 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="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" 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="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" 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="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="RangeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to RangeAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" order="5.0" 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="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedArrangementsToObtainGoodsAndServicesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="3.0" 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="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2014Member" xlink:title="presentation: PlanNameDomain to EquityIncentivePlan2014Member" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="presentation: PlanNameAxis to PlanNameDomain" order="0.0" 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="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="1.0" 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="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" 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="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="5.0" 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="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" order="0.0" 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="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedArrangementsToObtainGoodsAndServicesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="2.0" 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="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="IncomeStatementLocationAxis" xlink:title="IncomeStatementLocationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain" xlink:title="IncomeStatementLocationDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="GeneralAndAdministrativeExpenseMember" xlink:title="GeneralAndAdministrativeExpenseMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementLocationDomain" xlink:to="GeneralAndAdministrativeExpenseMember" xlink:title="presentation: IncomeStatementLocationDomain to GeneralAndAdministrativeExpenseMember" order="0.0" 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="IncomeStatementLocationAxis" xlink:to="IncomeStatementLocationDomain" xlink:title="presentation: IncomeStatementLocationAxis to IncomeStatementLocationDomain" order="0.0" 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="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="IncomeStatementLocationAxis" xlink:title="presentation: ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable to IncomeStatementLocationAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="AllocatedShareBasedCompensationExpense" xlink:title="presentation: ShareBasedCompensationAbstract to AllocatedShareBasedCompensationExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="presentation: ShareBasedCompensationAbstract to EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="ShareBasedCompensationAbstract" xlink:title="presentation: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to ShareBasedCompensationAbstract" order="0.0" 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="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="presentation: ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable to EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" order="1.0" 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="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="presentation: PlanNameDomain to EquityIncentivePlan2005AndEquityIncentivePlan2014Member" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="presentation: PlanNameAxis to PlanNameDomain" order="0.0" 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="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="1.0" 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="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" 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="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to StockIssuedDuringPeriodSharesStockOptionsExercised" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" order="4.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="7.0" 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="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="5.0" 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="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="5.0" 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="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityAwardsAggregateIntrinsicValueAbstract" xlink:label="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="EquityAwardsAggregateIntrinsicValueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="presentation: EquityAwardsAggregateIntrinsicValueAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="presentation: EquityAwardsAggregateIntrinsicValueAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="presentation: EquityAwardsAggregateIntrinsicValueAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EquityAwardsAggregateIntrinsicValueAbstract" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:label="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="EquityAwardsWeightedAverageRemainingContractualTermAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="presentation: EquityAwardsWeightedAverageRemainingContractualTermAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="presentation: EquityAwardsWeightedAverageRemainingContractualTermAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="presentation: EquityAwardsWeightedAverageRemainingContractualTermAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EquityAwardsWeightedAverageRemainingContractualTermAbstract" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="ProceedsFromStockOptionsExercised" xlink:title="ProceedsFromStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ProceedsFromStockOptionsExercised" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ProceedsFromStockOptionsExercised" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" order="11.0" 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="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="2.0" 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="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="CurrentFederalTaxExpenseBenefit" xlink:title="CurrentFederalTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentFederalTaxExpenseBenefit" xlink:title="presentation: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentFederalTaxExpenseBenefit" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="CurrentStateAndLocalTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="presentation: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentStateAndLocalTaxExpenseBenefit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="CurrentForeignTaxExpenseBenefit" xlink:title="CurrentForeignTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentForeignTaxExpenseBenefit" xlink:title="presentation: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentForeignTaxExpenseBenefit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="CurrentIncomeTaxExpenseBenefit" xlink:title="CurrentIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentIncomeTaxExpenseBenefit" xlink:title="presentation: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentIncomeTaxExpenseBenefit" order="3.0" 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="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="DeferredFederalIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="presentation: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredFederalIncomeTaxExpenseBenefit" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="presentation: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredStateAndLocalIncomeTaxExpenseBenefit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="DeferredForeignIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="presentation: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredForeignIncomeTaxExpenseBenefit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="presentation: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredIncomeTaxExpenseBenefit" order="3.0" 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="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="IncomeTaxExpenseBenefit" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsAbstract to IncomeTaxExpenseBenefit" order="2.0" 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="IncomeTaxDisclosureAbstract" xlink:to="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="presentation: IncomeTaxDisclosureAbstract to IncomeTaxExpenseBenefitContinuingOperationsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="EffectiveIncomeTaxRateContinuingOperations" xlink:title="presentation: IncomeTaxDisclosureAbstract to EffectiveIncomeTaxRateContinuingOperations" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="OperatingLossCarryforwardsTable" xlink:title="OperatingLossCarryforwardsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="TaxCreditCarryforwardAxis" xlink:title="TaxCreditCarryforwardAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="TaxCreditCarryforwardNameDomain" xlink:title="TaxCreditCarryforwardNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchMember" xlink:label="ResearchMember" xlink:title="ResearchMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TaxCreditCarryforwardNameDomain" xlink:to="ResearchMember" xlink:title="presentation: TaxCreditCarryforwardNameDomain to ResearchMember" order="0.0" 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="TaxCreditCarryforwardAxis" xlink:to="TaxCreditCarryforwardNameDomain" xlink:title="presentation: TaxCreditCarryforwardAxis to TaxCreditCarryforwardNameDomain" order="0.0" 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="OperatingLossCarryforwardsTable" xlink:to="TaxCreditCarryforwardAxis" xlink:title="presentation: OperatingLossCarryforwardsTable to TaxCreditCarryforwardAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="IncomeTaxAuthorityAxis" xlink:title="IncomeTaxAuthorityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain" xlink:title="IncomeTaxAuthorityDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember" xlink:label="DomesticCountryMember" xlink:title="DomesticCountryMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxAuthorityDomain" xlink:to="DomesticCountryMember" xlink:title="presentation: IncomeTaxAuthorityDomain to DomesticCountryMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="StateAndLocalJurisdictionMember" xlink:title="StateAndLocalJurisdictionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxAuthorityDomain" xlink:to="StateAndLocalJurisdictionMember" xlink:title="presentation: IncomeTaxAuthorityDomain to StateAndLocalJurisdictionMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxAuthorityAxis" xlink:to="IncomeTaxAuthorityDomain" xlink:title="presentation: IncomeTaxAuthorityAxis to IncomeTaxAuthorityDomain" order="0.0" 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="OperatingLossCarryforwardsTable" xlink:to="IncomeTaxAuthorityAxis" xlink:title="presentation: OperatingLossCarryforwardsTable to IncomeTaxAuthorityAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="OperatingLossCarryforwardsLineItems" xlink:title="OperatingLossCarryforwardsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_OperatingLossCarryforwardsNotSubjectToExpiration" xlink:label="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="OperatingLossCarryforwardsNotSubjectToExpiration" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to OperatingLossCarryforwardsNotSubjectToExpiration" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_OperatingLossCarryforwardsSubjectToExpiration" xlink:label="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="OperatingLossCarryforwardsSubjectToExpiration" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to OperatingLossCarryforwardsSubjectToExpiration" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TaxCreditCarryforwardAmountSubjectToExpiration" xlink:label="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="TaxCreditCarryforwardAmountSubjectToExpiration" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to TaxCreditCarryforwardAmountSubjectToExpiration" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TaxCreditCarryforwardExpirationPeriod" xlink:label="TaxCreditCarryforwardExpirationPeriod" xlink:title="TaxCreditCarryforwardExpirationPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="TaxCreditCarryforwardExpirationPeriod" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to TaxCreditCarryforwardExpirationPeriod" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" order="4.0" 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="OperatingLossCarryforwardsLineItems" xlink:to="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="presentation: OperatingLossCarryforwardsLineItems to IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLossCarryforwardsTable" xlink:to="OperatingLossCarryforwardsLineItems" xlink:title="presentation: OperatingLossCarryforwardsTable to OperatingLossCarryforwardsLineItems" order="2.0" 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="IncomeTaxDisclosureAbstract" xlink:to="OperatingLossCarryforwardsTable" xlink:title="presentation: IncomeTaxDisclosureAbstract to OperatingLossCarryforwardsTable" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:label="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:title="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsNetAbstract" xlink:label="DeferredTaxAssetsNetAbstract" xlink:title="DeferredTaxAssetsNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsOperatingLossCarryforwardsDomestic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsForeign" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsOperatingLossCarryforwardsForeign" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:label="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="DeferredTaxAssetsInProcessResearchAndDevelopment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsInProcessResearchAndDevelopment" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="DeferredTaxAssetsInventory" xlink:title="DeferredTaxAssetsInventory" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsInventory" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsInventory" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="DeferredTaxAssetsDeferredIncome" xlink:title="DeferredTaxAssetsDeferredIncome" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsDeferredIncome" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsDeferredIncome" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="DeferredTaxAssetsTaxCreditCarryforwardsResearch" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxCreditCarryforwardsResearch" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="DeferredTaxAssetsOther" xlink:title="DeferredTaxAssetsOther" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsOther" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsOther" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="DeferredTaxAssetsGross" xlink:title="DeferredTaxAssetsGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsGross" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsGross" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="DeferredTaxAssetsValuationAllowance" xlink:title="DeferredTaxAssetsValuationAllowance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsValuationAllowance" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsValuationAllowance" order="13.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="DeferredTaxAssetsNet" xlink:title="DeferredTaxAssetsNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsNet" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsNet" order="14.0" 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="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="DeferredTaxAssetsNetAbstract" xlink:title="presentation: ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract to DeferredTaxAssetsNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesNetAbstract" xlink:label="DeferredTaxLiabilitiesNetAbstract" xlink:title="DeferredTaxLiabilitiesNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxLiabilitiesNetAbstract" xlink:to="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="presentation: DeferredTaxLiabilitiesNetAbstract to DeferredTaxLiabilitiesPropertyPlantAndEquipment" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="DeferredTaxLiabilitiesOther" xlink:title="DeferredTaxLiabilitiesOther" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxLiabilitiesNetAbstract" xlink:to="DeferredTaxLiabilitiesOther" xlink:title="presentation: DeferredTaxLiabilitiesNetAbstract to DeferredTaxLiabilitiesOther" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="DeferredTaxLiabilities" xlink:title="DeferredTaxLiabilities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxLiabilitiesNetAbstract" xlink:to="DeferredTaxLiabilities" xlink:title="presentation: DeferredTaxLiabilitiesNetAbstract to DeferredTaxLiabilities" order="2.0" 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="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="DeferredTaxLiabilitiesNetAbstract" xlink:title="presentation: ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract to DeferredTaxLiabilitiesNetAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="DeferredTaxAssetsLiabilitiesNet" xlink:title="DeferredTaxAssetsLiabilitiesNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="DeferredTaxAssetsLiabilitiesNet" xlink:title="presentation: ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract to DeferredTaxAssetsLiabilitiesNet" order="2.0" 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="IncomeTaxDisclosureAbstract" xlink:to="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:title="presentation: IncomeTaxDisclosureAbstract to ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="ValuationAndQualifyingAccountsDisclosureTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="ValuationAllowancesAndReservesTypeAxis" xlink:title="ValuationAllowancesAndReservesTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="ValuationAllowancesAndReservesDomain" xlink:title="ValuationAllowancesAndReservesDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:title="ValuationAllowanceOfDeferredTaxAssetsMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:label="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:title="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:to="ValuationAllowanceDeferredTaxAssetUnitedStatesMember" xlink:title="presentation: ValuationAllowanceOfDeferredTaxAssetsMember to ValuationAllowanceDeferredTaxAssetUnitedStatesMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ValuationAllowancesAndReservesDomain" xlink:to="ValuationAllowanceOfDeferredTaxAssetsMember" xlink:title="presentation: ValuationAllowancesAndReservesDomain to ValuationAllowanceOfDeferredTaxAssetsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ValuationAllowancesAndReservesTypeAxis" xlink:to="ValuationAllowancesAndReservesDomain" xlink:title="presentation: ValuationAllowancesAndReservesTypeAxis to ValuationAllowancesAndReservesDomain" order="0.0" 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="ValuationAndQualifyingAccountsDisclosureTable" xlink:to="ValuationAllowancesAndReservesTypeAxis" xlink:title="presentation: ValuationAndQualifyingAccountsDisclosureTable to ValuationAllowancesAndReservesTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="ValuationAndQualifyingAccountsDisclosureLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="MovementInValuationAllowancesAndReservesRollForward" xlink:title="MovementInValuationAllowancesAndReservesRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="ValuationAllowancesAndReservesBalance" xlink:title="ValuationAllowancesAndReservesBalance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="ValuationAllowancesAndReservesBalance" xlink:title="presentation: MovementInValuationAllowancesAndReservesRollForward to ValuationAllowancesAndReservesBalance" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="ValuationAllowancesAndReservesChargedToCostAndExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="presentation: MovementInValuationAllowancesAndReservesRollForward to ValuationAllowancesAndReservesChargedToCostAndExpense" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="ValuationAllowancesAndReservesBalance_2" xlink:title="ValuationAllowancesAndReservesBalance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="ValuationAllowancesAndReservesBalance_2" xlink:title="presentation: MovementInValuationAllowancesAndReservesRollForward to ValuationAllowancesAndReservesBalance" order="2.0" 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="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="MovementInValuationAllowancesAndReservesRollForward" xlink:title="presentation: ValuationAndQualifyingAccountsDisclosureLineItems to MovementInValuationAllowancesAndReservesRollForward" order="0.0" 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="ValuationAndQualifyingAccountsDisclosureTable" xlink:to="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="presentation: ValuationAndQualifyingAccountsDisclosureTable to ValuationAndQualifyingAccountsDisclosureLineItems" order="1.0" 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="IncomeTaxDisclosureAbstract" xlink:to="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="presentation: IncomeTaxDisclosureAbstract to ValuationAndQualifyingAccountsDisclosureTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:label="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:title="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:label="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:label="EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:title="EffectiveIncomeTaxRateReconciliationFdiiPercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationFdiiPercent" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationFdiiPercent" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:label="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:title="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:label="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="EffectiveIncomeTaxRateReconciliationTaxContingencies" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationTaxContingencies" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="EffectiveIncomeTaxRateReconciliationOtherAdjustments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationOtherAdjustments" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateContinuingOperations" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateContinuingOperations" order="11.0" 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="IncomeTaxDisclosureAbstract" xlink:to="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:title="presentation: IncomeTaxDisclosureAbstract to EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:title="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="UnrecognizedTaxBenefits" xlink:title="UnrecognizedTaxBenefits" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefits" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefits" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:label="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:title="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefitsPeriodIncreaseDecrease" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:title="UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:title="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="UnrecognizedTaxBenefits_2" xlink:title="UnrecognizedTaxBenefits" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefits_2" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefits" order="4.0" 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="IncomeTaxDisclosureAbstract" xlink:to="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:title="presentation: IncomeTaxDisclosureAbstract to ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: EarningsPerShareAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:title="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to WeightedAverageNumberOfSharesOutstandingBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to WeightedAverageNumberOfDilutedSharesOutstanding" order="2.0" 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="EarningsPerShareAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:title="presentation: EarningsPerShareAbstract to WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasicAbstract" xlink:label="EarningsPerShareBasicAbstract" xlink:title="EarningsPerShareBasicAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: EarningsPerShareBasicAbstract to EarningsPerShareBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: EarningsPerShareBasicAbstract to EarningsPerShareDiluted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareBasicAbstract" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareBasicAbstract" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockCompensationPlanMember" xlink:label="StockCompensationPlanMember" xlink:title="StockCompensationPlanMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="StockCompensationPlanMember" xlink:title="presentation: AntidilutiveSecuritiesNameDomain to StockCompensationPlanMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="presentation: AntidilutiveSecuritiesNameDomain to EmployeeStockOptionMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember" xlink:label="RestrictedStockMember" xlink:title="RestrictedStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="RestrictedStockMember" xlink:title="presentation: AntidilutiveSecuritiesNameDomain to RestrictedStockMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember" xlink:label="PerformanceSharesMember" xlink:title="PerformanceSharesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="PerformanceSharesMember" xlink:title="presentation: AntidilutiveSecuritiesNameDomain to PerformanceSharesMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="AntidilutiveSecuritiesNameDomain" xlink:title="presentation: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to AntidilutiveSecuritiesNameDomain" order="0.0" 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="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="presentation: ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareReconciliationAbstract" xlink:label="EarningsPerShareReconciliationAbstract" xlink:title="EarningsPerShareReconciliationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareReconciliationAbstract" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="presentation: EarningsPerShareReconciliationAbstract to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="0.0" 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="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="EarningsPerShareReconciliationAbstract" xlink:title="presentation: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to EarningsPerShareReconciliationAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="presentation: ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" order="1.0" 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="EarningsPerShareAbstract" xlink:to="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="presentation: EarningsPerShareAbstract to ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockRepurchaseProgramDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" xlink:title="EquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="StockRepurchasedDuringPeriodShares" xlink:title="StockRepurchasedDuringPeriodShares" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="StockRepurchasedDuringPeriodShares" xlink:title="presentation: EquityAbstract to StockRepurchasedDuringPeriodShares" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="StockRepurchasedDuringPeriodValue" xlink:title="StockRepurchasedDuringPeriodValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="StockRepurchasedDuringPeriodValue" xlink:title="presentation: EquityAbstract to StockRepurchasedDuringPeriodValue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="TreasuryStockAcquiredAverageCostPerShare" xlink:title="TreasuryStockAcquiredAverageCostPerShare" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="TreasuryStockAcquiredAverageCostPerShare" xlink:title="presentation: EquityAbstract to TreasuryStockAcquiredAverageCostPerShare" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentsGeographicalAreasAbstract" xlink:label="SegmentsGeographicalAreasAbstract" xlink:title="SegmentsGeographicalAreasAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis" xlink:label="ConsolidationItemsAxis" xlink:title="ConsolidationItemsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain" xlink:title="ConsolidationItemsDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ReportableGeographicalComponentsMember" xlink:label="ReportableGeographicalComponentsMember" xlink:title="ReportableGeographicalComponentsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConsolidationItemsDomain" xlink:to="ReportableGeographicalComponentsMember" xlink:title="presentation: ConsolidationItemsDomain to ReportableGeographicalComponentsMember" order="0.0" 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="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain" xlink:title="presentation: ConsolidationItemsAxis to ConsolidationItemsDomain" order="0.0" 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="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConsolidationItemsAxis" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConsolidationItemsAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="presentation: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="0.0" 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="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="presentation: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="0.0" 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="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConcentrationRiskByBenchmarkAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTypeDomain" xlink:to="GeographicConcentrationRiskMember" xlink:title="presentation: ConcentrationRiskTypeDomain to GeographicConcentrationRiskMember" order="0.0" 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="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="presentation: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="0.0" 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="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConcentrationRiskByTypeAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="presentation: SegmentGeographicalDomain to US" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="InternationalMember" xlink:title="presentation: SegmentGeographicalDomain to InternationalMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EuropeMember" xlink:label="EuropeMember" xlink:title="EuropeMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="EuropeMember" xlink:title="presentation: SegmentGeographicalDomain to EuropeMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_PacificRimMember" xlink:label="PacificRimMember" xlink:title="PacificRimMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="PacificRimMember" xlink:title="presentation: SegmentGeographicalDomain to PacificRimMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="CA" xlink:title="presentation: SegmentGeographicalDomain to CA" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="presentation: StatementGeographicalAxis to SegmentGeographicalDomain" order="0.0" 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="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="StatementGeographicalAxis" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to StatementGeographicalAxis" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:label="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:title="GeographicAreasRevenuesFromExternalCustomersAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: GeographicAreasRevenuesFromExternalCustomersAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="presentation: GeographicAreasRevenuesFromExternalCustomersAbstract to PropertyPlantAndEquipmentNet" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:to="ConcentrationRiskPercentage1" xlink:title="presentation: GeographicAreasRevenuesFromExternalCustomersAbstract to ConcentrationRiskPercentage1" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="GeographicAreasRevenuesFromExternalCustomersAbstract" xlink:title="presentation: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to GeographicAreasRevenuesFromExternalCustomersAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" order="4.0" 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="SegmentsGeographicalAreasAbstract" xlink:to="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="presentation: SegmentsGeographicalAreasAbstract to ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" xlink:title="LeasesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense" xlink:label="OperatingLeaseExpense" xlink:title="OperatingLeaseExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="OperatingLeaseExpense" xlink:title="presentation: LeasesAbstract to OperatingLeaseExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashFlowOperatingActivitiesLesseeAbstract" xlink:label="CashFlowOperatingActivitiesLesseeAbstract" xlink:title="CashFlowOperatingActivitiesLesseeAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments" xlink:label="OperatingLeasePayments" xlink:title="OperatingLeasePayments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CashFlowOperatingActivitiesLesseeAbstract" xlink:to="OperatingLeasePayments" xlink:title="presentation: CashFlowOperatingActivitiesLesseeAbstract to OperatingLeasePayments" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="CashFlowOperatingActivitiesLesseeAbstract" xlink:title="presentation: LeasesAbstract to CashFlowOperatingActivitiesLesseeAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseDescriptionAbstract" xlink:label="LesseeOperatingLeaseDescriptionAbstract" xlink:title="LesseeOperatingLeaseDescriptionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:title="OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeOperatingLeaseDescriptionAbstract" xlink:to="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:title="presentation: LesseeOperatingLeaseDescriptionAbstract to OperatingLeaseWeightedAverageRemainingLeaseTerm1" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:title="OperatingLeaseWeightedAverageDiscountRatePercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeOperatingLeaseDescriptionAbstract" xlink:to="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:title="presentation: LesseeOperatingLeaseDescriptionAbstract to OperatingLeaseWeightedAverageDiscountRatePercent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeaseDescriptionAbstract" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeaseDescriptionAbstract" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:title="OperatingLeaseLiabilitiesPaymentsDueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDue" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability" xlink:label="OperatingLeaseLiability" xlink:title="OperatingLeaseLiability" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="OperatingLeaseLiability" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to OperatingLeaseLiability" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:title="presentation: LeasesAbstract to OperatingLeaseLiabilitiesPaymentsDueAbstract" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetailsCalc2" />
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="QuarterlyFinancialInformationDisclosureAbstract" xlink:title="QuarterlyFinancialInformationDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="GrossProfit" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to GrossProfit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to NetIncomeLoss" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareDiluted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="EarningsPerShareAbstract" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to EarningsPerShareAbstract" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RelatedPartyTransactionsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="RelatedPartyTransactionsAbstract" xlink:title="RelatedPartyTransactionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:label="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:title="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="RelatedPartyTransactionsByRelatedPartyAxis" xlink:title="RelatedPartyTransactionsByRelatedPartyAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain" xlink:label="RelatedPartyDomain" xlink:title="RelatedPartyDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember" xlink:label="RelatedPartyMember" xlink:title="RelatedPartyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RelatedPartyDomain" xlink:to="RelatedPartyMember" xlink:title="presentation: RelatedPartyDomain to RelatedPartyMember" order="0.0" 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="RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="RelatedPartyDomain" xlink:title="presentation: RelatedPartyTransactionsByRelatedPartyAxis to RelatedPartyDomain" order="0.0" 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="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="RelatedPartyTransactionsByRelatedPartyAxis" xlink:title="presentation: ScheduleOfRelatedPartyTransactionsByRelatedPartyTable to RelatedPartyTransactionsByRelatedPartyAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis" xlink:label="CounterpartyNameAxis" xlink:title="CounterpartyNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="RepurchaseAgreementCounterpartyNameDomain" xlink:title="RepurchaseAgreementCounterpartyNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_TheOneGroupHospitalityIncMember" xlink:label="TheOneGroupHospitalityIncMember" xlink:title="TheOneGroupHospitalityIncMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RepurchaseAgreementCounterpartyNameDomain" xlink:to="TheOneGroupHospitalityIncMember" xlink:title="presentation: RepurchaseAgreementCounterpartyNameDomain to TheOneGroupHospitalityIncMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CounterpartyNameAxis" xlink:to="RepurchaseAgreementCounterpartyNameDomain" xlink:title="presentation: CounterpartyNameAxis to RepurchaseAgreementCounterpartyNameDomain" order="0.0" 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="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="CounterpartyNameAxis" xlink:title="presentation: ScheduleOfRelatedPartyTransactionsByRelatedPartyTable to CounterpartyNameAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionLineItems" xlink:label="RelatedPartyTransactionLineItems" xlink:title="RelatedPartyTransactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="tact-20241231.xsd#tact_RelatedPartyTransactionAbstract" xlink:label="RelatedPartyTransactionAbstract" xlink:title="RelatedPartyTransactionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RelatedPartyTransactionAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: RelatedPartyTransactionAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RelatedPartyTransactionAbstract" xlink:to="AccountsReceivableNetCurrent" xlink:title="presentation: RelatedPartyTransactionAbstract to AccountsReceivableNetCurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RelatedPartyTransactionLineItems" xlink:to="RelatedPartyTransactionAbstract" xlink:title="presentation: RelatedPartyTransactionLineItems to RelatedPartyTransactionAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="RelatedPartyTransactionLineItems" xlink:title="presentation: ScheduleOfRelatedPartyTransactionsByRelatedPartyTable to RelatedPartyTransactionLineItems" order="2.0" 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="RelatedPartyTransactionsAbstract" xlink:to="ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:title="presentation: RelatedPartyTransactionsAbstract to ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>15
<FILENAME>image01.jpg
<TEXT>
begin 644 image01.jpg
M_]C_X  02D9)1@ ! 0$ D "0  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 0N!WP# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBD) H 6BF^8OK2
M>:GK0 ^BH_.3UH\Y/44 244SS4]:7S%]: '44@(-+0 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 44A8"F^8OK0 ^BH_.3UH\Y/44 244SS4]:7>OK0 ZBD!S2T %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !110: "BD%+0 E+5*^O%MADFJ*ZRA_B%-(3:1MT5
MB_VPF?O"E_M=/[PI\K%S(V:*QO[73^\*0ZPG]X4<K#F1M45C?VNG]X4'6$Q]
MX4<K#F1LT5BC6$Q]X4HU=#_$*.5AS(V:*Q?[83^\*7^UT]11RL.9&S16+_;"
M9^\*7^UT]11RL.9&S16,=70?Q"C^UT]11RL.9&S16-_:Z>HH_M=/44<K#F1L
MT5C?VNGJ*/[73U%'(PYT;-%8W]KIZBC^UT]11RL.=&S16+_;"9^\*/[83/WA
M1RL.9&U16*=80?Q"@ZP@_B%'*PYD;5&:Q?[83'WA2?VRG]X4<K#F1MT5F6^H
MK*P -:0.0#4M%"T44'I0 45E76IK!)M)J)=80C[PJN5BNC:HK(&K(1U%1G64
MS]X4<C%S(VZ*Q/[83^\*7^V$QG<*.5AS(VJ,UBC6$Q]X4G]LI_>%'*PYD;>:
M,UB?VRG]X4?VRG]X4<K#F1MT5CKJR'^(4[^U%]11RL?,C6HK,&HKZTIU%0.H
MHY6+F1I452M[Q9FP#5VDU8I.X4444@"BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HI&.%)K)EU5(YBF1Q32N%S7HK%_MA,_>%+_:
MZ?WA3Y63S(V:*Q3K"#^(4O\ :Z?WA1RL.9&S16.=60+G<*:NL(3]X4<K#F1M
M457M9Q.F0:L5)04444 %%%% !1110 4444 %%%% !1110 45%/((H]QK+?5T
M5L;A32N)NQLT5BG6$_O"C^V$_O"GRL7,C:HK%.L)C[PH_MA,?>%'*PYD;5%5
M;.Y%RFX&K524%%%% !1110 4444 %%%% !1110 4444 %%95SJ:PS;"141UA
M,XW"J46R>9&U16,VKH/XA0-73U%'*PYD;-&:QSJR 9W"F?VRG]X4<K#F1MT5
M5L[D7"9!JU4E!1110 4444 %%%% !1110 4444 %%%5[NX$$>XF@"QFL?4M0
M%NV,U4E\01H<;A7'^(-?$DAVO6]*FY2U,:E1*-T;5WXD$0/SUAS>-51B/,_6
MN'U75G(;#UQMW?S%R0YKNCA4SD6(=SV+_A.ES_K/UIX\<+_ST_6O#OM=QNSO
M:IA=S[<[S3>%0Y8BQ[E!XT5SCS/UK9M/$HEQ\]> 6=_,&&7-=3INKNA7+T/"
MJQ*Q#9[UIM\+CO6MFO+_  [XA5"-SBNNCU^-_P"(5PUJ3C*R.RG431T5%5[2
M<3Q;@:L5SFP4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !15:[N!!'N)K/&KH1]X4U%L3:1LT5C?VNF/O"A-81G W#FGRL7,
MC9HID3[XPWK3ZDH**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBFNVU2: '4C$!2:RKG5$A)R169<>(XT5AN'2K4&2Y(FU'5A;NP
MW=*YVZ\5K%GY_P!:Y[7==\R1BKUPNI:E(V<.:[:>'N<DJUCT=_'"AL>9^M+_
M ,)NO_/3]:\5EO)R^=QH6\GR/G-=*PBL9/$M'NMOXP5R/G_6MF#Q"'4'=7@E
MEJ$JL,N:ZNRUA@B@O64\,D$<0VSW?3K@7$ ;-7:\_P! \1HEJ%9QFNBBUQ).
MC"O/E!IG=&::-ZBJEI="X'!JW4-%W$[TM)WI:0(****!A1110 444UVVH30
MZBLQ]256QFC^TEQU%5RL5T:=%9G]HKCJ*3^TE]11RL.9&I167_:2^HI!J:GN
M*.5BYD:M%9?]I+ZBC^TE]11RL.9&I167_:2^HH_M)?44<K'S(U**R_[27U%'
M]I+ZBCE8N9&I167_ &DOJ*7^TEQU%+E8<R-.BLK^TU]12_VDOJ*.5AS(U**R
M_P"TE]11_:2^HI\K'S(U**R_[27U%']I+ZBCE8N9&I169_:2^HI&U)0.HHY6
M',C4I*S?[27&<BG1:@LD@7-*S'=,T!2T@Y%+2&<9XWOC9Q YQ7#PZ\?[U;'Q
M8N3;VZX->3IJ9$8.ZNJA"YR5Y69Z'_;QW_>_6I/[=/\ >KSA=58O]ZI6U5@/
MO5U^Q.;VIZ"=>_VJ:VO'^]7GBZLQ_BH&JL3]ZDZ0*KK<]%&O''WJ1M>.W[U>
M>#5FS]Z@ZJ2<;J%1U'[4]"77CM^]3EU[@_-^M>='56'&ZC^UF'\5-T1QJZ'H
M@UXY^]3O[>_VJ\Y.JL/XJ0ZNV/O4_8:B=4]$_MX[OO4\:]S]ZO.!JK?WJ7^U
MF_O4.@'M3T5]>.?O?K1_;W'WJ\Z_M5C_ !4G]K-_>J?8#=4]&_M[_:H.O<?>
MKSE=68G[U(VKMG[U2J.I+K'HXU[C[U U[_:KS@:NW]ZC^UF_O5HZ(E59Z.->
M_P!J@:]S]ZO.#J[#^*C^UFQ]ZE[(/:L]$_MX[_O?K2G7CN^]^M>=#56Z[J=_
M:K==U/V)2J-GH;:\<CYOUI'UXX'S5Y[_ &JQ_BI/[58_Q4>Q#VC/1/[>.W[U
M,_MXY^]^M< NJL3C=3'U0@_>K*5*Q<:I[!H.K>=<(-W>O28CF)3[5X)X.U R
M7\0SWKWFV.;:,_[(KBJ*S.VF[HEJ.:01H2?2I*RM<G,%J6![5"W+.!\2:SY5
M\RAN]9<&O';]ZN4\4:J3J3?-WK&35F7C=7H4Z=XG#4J69Z8NN_*?FJHVO$N?
MG_6N!;6&5?O5#'JK,Q^:M_8&'MCT5M>./O4[^WCL^]7G?]J$MC=2_P!JMG&Z
MI= %5/0UUX[?O4P:\?[U<!_:A!QNI&U,@CYJ7L2E5/0?[=/][]:3^WCG[U<"
M=3./O5&VJ$#.ZFL.5[6YZ7#KO^U5E=<Y^]7E\>KL!]ZK":RV,[JET!^U/44U
ML?WJ636QC[U>8#7&'\5+_;C'^*E[$2JZGK^B:TAN/F>NL&K0G^(5\^V?B%H)
M-V^MJ#Q:Q;_6?K6%2@[FT*R2/:QJ,1/WJLQ3+*.#7D-KXG+2 ;_UKO\ P]J2
MW$>2PZ5A.DXHWC439TE%,$JGH13^M9&@4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110!!=S"*!R3VKRG4]<V:I(H;H:[OQ/>?9K1CG'RU\_Z
MQJ[?VI(=W>MZ4+G/6J6.[.O'=][]:=_;W/WOUKSG^U6QG=2?VNW]ZNR-*YQR
MJW/17UXY^]3O[>.!\U><KJK'^*C^UFS]ZK]B+VK9Z3+KW[K[U1P:Z=X^:O/#
MJ[,,;J(]58,/FK.5&R-:=0^B?#%U]IM-V<\5T%<)\.;L3Z9DGM7=UY\E9V.Z
M.P4445)04444 %%%% !1110 4444 %%%% &9KDWD6#/7E]UKI$Y&[O7?^-)O
M)T21O:OGVYU9C,WS=ZZ*,;G/6=COVUX\?-^M!UXX^]7G0U9C_%2C56/\5=?L
M3F]I8]$;7CM^]^M)_;QV?>_6O//[5;INH&JMG&ZFZ0O:,]Z\)ZLDUOAFY-=@
M#D9KP'PGX@,=_%#OZFO>+.02VL; ]5K@K0Y6=M&7-$GHHHK(U"BBB@ HHHH
M**** "BBB@ J.:01H2?2I*Q_$%R;>S+ ]J:U X'Q!K?E:J5#<9K/.NG>/FKC
MO$FK,=39MW>LU-58KG=7?3IZ'#4DST2;7NGS?K2KKW ^:O.'U9B?O4#5V_O5
MHJ6IBJCL>E2Z[^[^]59=>.<;JX ZNS#&ZHDU5C,!NI2II(N%34^B?"-U]IL]
MV<\5TM<+\-YO-TS.>U=U7G2W/06P4445(PHHHH **** "BBB@ I"<#-*3BJ]
MQ.J0L<CI0@&2WT<75JYSQ)K4269VOSBN=\2>(?L[, _3WKS[5?%#W"E-^?QK
MJIT&V<TZRL7=0U^02'#'\ZP+G5Y)FR6-4)KDR1ELU41MPS7I4Z-M3AJ5-"Q=
M7+/WK/D3=5DC=2%:[(P.5S*XB&VI/+'ETIZXH![4-"<KB1#;5@7#1XQ3%7FG
MR)Q4V"#U-*RUB6)A@FNHL=??"Y8_G7 CY35N.\,8'-<U6E?4[*<VCZ'\.:S$
M]@NYN:Z"*^CD/#5\_:5XH>! F^N[\/\ B'SY4!?K[UYDZ#6IWPJIH]0!R,TM
M003J\2G(Y%3]:Y3<**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH *1C@9I:BG8+"Y]!0)G,^*=42"T(#<BN%CU[Y?O?K5#QIKQ^V20[^AKB%
MU9@<;J]"E2]TY:D];'H_]NG:?FI+773]J0%N]>>?VLW3=2IJI2=#N[TW2T,N
M?4^E=)O$N+2/!R<5I5YWX#U4W:HA;.*]$K@DK,[H.ZN%%%%24%%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 444A('6@!'<(N369>ZG%'"WS4NKW
MBPV;-N'%>4ZYXF*%U#]_6M:=-R,JE11-#7=<P[;6KB=0U^7G#'\ZS+S66N'/
MS9K-FD\P5Z,*2..I4LBU-J;R]35*60N*KY^;%25V4H6.*=09Y8(IJ1C-29QQ
M0>#739&+;8+\IXJU%=.AZU!CBG,N$S6-2-RX-HUK77)8I H8X^M=;IFOL0,M
M^M>9EMIS5ZSU$Q]ZXI4=3KA49[_X:UA'7YFKJXKI)ONG-?/^C>(F@(&^O3O"
MFLB[<!G_ %KAK4FG<[:=6ZL=T*6F+(K=#3ZY3I"BBB@ HHHH *SM3ODMX&!.
M#6C7F?CW6&LY2@;%5"-W8F3LB.ZUL><V&[T@UL%?O5YL^M,[L=W>DBUHEB-U
M=RIG*YGI?]MC'WJ3^VQ_>KS9M:8-C=31K;;OO5HJ5S-U3THZV-OWJ:FN#^]7
MG#ZTW]ZF?VTP_BIJB+VIZ8-<&?O4G]MC/WJ\T_MML_>J0ZRVW.ZCV(O:GI/]
MN#^]1_;@_O5YG_;;?WJ4:VV/O4>P'[4]+_MP?WJ0ZX/[U>:?VVW]ZD_MMO[U
M-T!>U/2SK@Q]ZG#6QL^]7F8UIB?O4O\ ;;9QNK-T1.J>C_VX/[U.77!_>KS0
MZRV?O4IUIA_%2]B"JGI?]N#^]2_VX/[U>:?VTW]ZD.M-C[U-4="_:GI1UP?W
MJ!K8S]ZO-/[:;'WJ4:TV/O4_9$.J>F'6QQ\U-FUP;!\U>:KK;'^*D?6F/&ZE
M[(2JGIJZV/+^]5K2-8$VH(F[J:\J&M-L^]6KX4U<RZ_$F[J:SG2LKFM.I=GT
M+&<QJ?:G5' <V\9_V14E<)WGD'QE_P"/=*\=4'R17L?QD_X]TKQX'$ KTL(K
MH\[%.TAD0.^GS9'%$/W\T^9<G->DHG Y%=<BEP13@N33BO2DX:BYAF".:;SF
MIRORU'MIJ <PTY-+M)I^VG@8%/D17/H1;2:9M).*G'%"CYLT^43F1!3G%!4Y
MJ;'.:#US5<BL',1;2*0J:F(S2'FI<-!\Y"J$<TC(2:L=J3%1[,AR(-AI=AQ4
MV*=CBFHB4RMM)H"DG%3*.: ,-1R*Y7,1[3G%+@CBI.^:#US5<A2G8CVD4;2*
MD(S0>:7('.1X(YIK@[<U*W(Q2./W593AH.,]3K_ H)U"(^]?15K_ ,>L?^Z*
M^=O G%_%]:^B;7_CUC_W17CXA6D>MAW=$U87B89L6^E;M8?B3_CR;Z5C#<W>
MQ\W^)23J[#WK'8$2 5L^)/\ D-,?>LF09D!KV:,=#RJ[U$D!I$4K4K#.*".*
M[8P./F&!3G-*5/6GBAL8Q2< 4B, DYIQ!-.4?+0.*A15RE+03DU&X/2IAQ32
M*UY1J9$ 0*D4GI2XXI!UJ7 ?.(Q(I-Q'>GL,TS&:ATR5-B[SZU-'.R<YJ+9Q
M3'SC%1*F:*9JP:F4<'=79Z#XK^S*%W_K7F.UJEBDEC88)KEG2OH=%.KJ?0FD
M>)!=,HW]:[BUD$D"MGK7SKX=U9H9$W/WKV/1-=66V1=PKAJTK;';3J7.NHJ*
M"3S$W5+7,;A1110 4444 %%%% !1110 4444 %%%% !1110 4444 <-\0)O*
MLSSVKYZO\R7[GWKW;XGR;+/\*\*D^:<M7?AXWB<&*>I'M.,4W8:G]Z.*]&G#
M0\YRL,1"*:R$5.*1AFMN0(R($4DT/E:EC'S8IDXXK*<-#6$]3UWX::EY=LL>
M>M>P1G=&I]17SSX!N2EU$F>]?0=J<VT9_P!FO%Q$;2/6I.\2:BBBL#4****
M"BBB@ HHHH **** "BBB@#E?'O\ R+\OT-?--QGSW^M?2_CS_D 2_2OFJX'^
MD/\ 6NW"JYRXAV(D4TXH13Q3G(Q7K*F>;*9%M.,TJH2<U(<;*%("T2IZ"YRS
MI-R;?6(3GH:^C_"VH?:[./G.%KY@C8B^1QV->Z?#W4,P*I;M7FXJ&ESOPTST
M^BFHVY :=7G'<%%%% !1110 4444 %%%% !7/>*QG3V^E=#6%XG&;$_2JAN*
M6Q\V^(U/]I,/>LR/(7%;/B5?^)FWUK)"\UZ]*-T>56GJ1E3FG.A4 T_J14DH
M!45T\AS<Y6"G&:=#&3,#4A&$IULP\P"LZL?=-*4KL][^&(QI7X5Z!7!?#/\
MY!?X5WM>)4^)GLP^$****@H**** "BBB@ HHIDK[$S0!%>2B*W9L]!7G^L^)
MA"LB[_UK9\0ZXL%K(F[M7B>NZH\TLF&/)KKH4;[G/5J6$UO63=S,-W>N=D4L
M<U#EVE))/6K>1LKT:<+'FU*A"&XVT*-O%(!^\S4C#)KMC'0PE*Z#.*&.!2$4
M,,BK,AN,G-/"<9I%'%2Y&S%#0DQ@..:'DR*3M3=AJ+%Q(R_-+R:8R$&IHUXH
M<;FJG8;"Y68<UTNE:N;.=/FKF<8ES22NWF @FN6K3T-X5+'O.A>)Q<>6F_\
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
MU[[\.IC):@$]!7CXV/4]C"RZ'H-%%%>8=P4444 %%%% !1110 4444 %%%%
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
MI*%P\8(]*DK.T>;SK16SVK1KQ&K.Q["=T%%%%(84444 %%%% !1110 4444
M%%%% !11368*,F@#$\17ZV^GRC.#BOG?Q'?/<7<F3_%7J?C[5_*+QJW6O%KR
M7S9V/J:]'"TKZG!B:EB 9ZU- ?GYI ORTT':U>O"'*CRW*[)I,>956X^]Q5C
M.1FH?+:608&:RJ3L;1C<=:6SSN !7::1H4C;25_2F^%M&::1=R=Z]?TWP\B6
MZ':.E>=5K6.ZE2,SP]HJJ5W+^E=<NE0C^$5):60@Q@5?KAG-MG9""2*(TZ,?
MPTOV",]JNT5%V59%!M-B/\-9NIZ/$T!PHKH:CFC\Q<549M.XI131XSK^AG#;
M5KS;4M-EMYCD'K7TM=Z,D^<J*\U\9>'Q"'*I7H4L1=V..=#2YY$^<@5.ARM+
M+;.DK!@1@TD7!(KT*<KZGGU8ZC"?FQ4H&5J+K+4H^]BM)ZD15F.M)S!=*0<<
MU[A\/]3\V(!CVKP>4[9017H_@#4O+D52W>O.Q-.Z.^A4L>\JVY<TM5;&82VR
M'/:K5>4ST4%>._$R!I+PXKV*O/?&=A]HG)QFKI.TB*BO$\,:R?>>*22R?'2N
M[.B'<?DI#HA/\%=\:IQRIZ'"FQ?R^E(+%]G2N[_L0XQLI5T0]-E:>V(=(X,6
M+[3Q2)8OSQ7?-H9'\%,_L0C^"I=42I'"K92;NE*+)]W2NZ&AG^Y1_8AS]RJ]
ML-4C@I+&3TJ+RFCZUZ')H9\HG97+ZK9?9V((Q6]&K=F%6G9&)FGYJ+/S4Y37
M98Y+6'L?EI%0LN!UI,Y;%6]/C\V[5/6IF[(N*NRLMFY;I3Y+)QCBNU31"2IV
M5+/HA^7Y*X)5=3K5/0XA;*0CD4@L7W=*[S^Q"(Q\E-&B'^Y4^V*C2.&^PONZ
M4/9/GI7=?V(<_<I#HA/\%#K%^R.%-D_I2M8N1TKN?[$/]RG+HA)^Y4>W#V5D
M<*M@X'2M7P?:.GB>$D=ZZD:'_L59T'1S#KD;[>AI3J7BPIT_>/:+;_CVC_W1
M4M,A&(4'M3Z\P](\@^,JYMEKQVV;Y0*]F^,(S;+7C$0V\UZN"V/,Q>Y-U?%(
M_P O%$?,F:6;EJ]:#U/-:&*<TC+BGJ,4I&:8EN, P,T$<9IW48H/3%-,=AJC
MC-+G-*!\M"KQ0V2"G-.#YXI@&W--!^:E<=A6/S8I1P*7;DYI331+%!P*;WHH
MH) G%-/(S2D9I3]VF6MAR)E,U&XP:GA/[NHY%R:8QF_BG*<TPKBE3K4,=AQ.
M3BFGCBEQ\V:#R<T"$Z&E;@4F,FE/(H%8=%P<TR;DTY3BD<9&:RGL;01V?@;_
M (_H?K7T+:_\>T?^Z*^>? __ "$(?K7T-:_\>L?^Z*\/%_$>OA=B:L7Q#_QY
MM]*VJQ?$/_'FWTKGI_$CHG\)\W^*3_Q.7'O66IXQ6GXI'_$Y8^]9@%?145>)
MXE?<#P:#Q2D9-(XXK9HYKCU/&:CDY.:>HXIKCBIV%U%3[F:3=S2*<(:A+X-'
M,:<MRRIS29^;%1+)BC?@YJ92'RDN?FQ0QYQ4/F?-FEWY.:+ARDOW32L>*B,F
M:-^1BM(RT)<=10<&IU7(S5:K"-\N*7,#0UFJ/;GFGL.:51Q5(+Z$>:>#D8I"
MF#0!CFGNA7T$*Y.* /+<&G=\T.-PK"K"Z-:<K,]-^'NJ["J;NM>UVS[X%;U%
M?-?@^X,%[&N>K5]&Z6V[3XCZBO#Q,;,]C#NZ+E%%%<IT!1110 4444 %%%%
M!1110 4444 %>8_$B?RU(SVKTVO(_BI)M?&:VH?&C.J_=/'[EMT['WH3D4UO
MFD-/48%?04]$>!7>H'K24IY-+BNBVA@B,_*:E!P*B;DT[/%9V-'L*_K35;!I
MS?=J,#-:I:"2'2_,A-=[\-=1^SRA,]37!N,1D5O>#Y3%?1C/5J\S%1NCNP[L
MSZ9M'\RV1O45-5+2CNTZ(_[-7:\1[GL+8****0PHHHH **** "BBB@ HHHH
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
M;J6.[4+G&:\C$GHT-SZ/C?>@8=Z?5336+6,9/4BK=<!W!1110 4444 %%%%
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
MSS7O?@G2OL5NI*XR*\;$O4]/#HZZUC\JW5/05-117$=@4444 %%%% !1110
M4444 %%%% !7*>,+OR=-F&>U=77F?Q#O?*BDCSU%;4(WG8SJNT3Q'4)?/OI#
M_M4@X45 3FYD/J:ESQBO=@K(\:L]2.5N*Z;P9:^9JD9QWKEI>*]&\ 6>Z>.3
M%9U9V3%25V=%XLT\"S)Q_#7D3ILGD'O7O?BN#.G,<?PUX/>G;=2?6C#SO$JJ
MK,K,.::R[1NIR'<:=(,KBMIZD(ZOP'<_\3F)<]Z^CH#F!/H*^7O!\WD:[%SW
MKZ6TJX\^U0Y_A%>+BU[QZN&E[MB_1117(=04444 %%%% !1110 4444 %%%%
M &-XANOLMDSYQQ7SOXINOM>J,<YYKW/Q[+Y6D,<]J^>;U_,NBWO7H8.%U<X\
M3*VA3;Y#M]:>HVBDD7<X-&>*]6&AYDM6,EXKI?!NG_;;]5(SS7-R?-M'O7IO
MPXL,7B2$5RXFI:)T8>%V>F:-HXM ORXKI@, "D50%'%.KQI2;9ZR5D%%%%2,
M**** "BBB@ HHHH **** "L[5K87%NPQVK1IDB[HV'M33LQ-71\Y^,=.\J]D
M.WO7)'Y82*]A\=:5\LDNVO([B/:Q6O8PL[H\S$0L58#Q4DG2F8V4N[=77)W.
M1:,L:;+]GNT.>K"OI7P?,)=$B.>U?, ;$R'T->]^ -5#V,4&[H*\O%K0]+#O
M4]&HH'2BO/.T**** "BBB@ HHHH **** "O#_BJF=0S[U[A7A_Q4?&HX]ZZ<
M)_$.?%?PSS$CK3(Q\YJ;K4>,&O?B]#PVPD.1BM_P-QXAA^HKG6/-=%X'/_%0
MP_45S8E^ZSJPWQ'TW;_\>\?^Z*EJ*W_X]X_]T5+7@'M!1110 4444 %%%% !
M1110 4444 <WXFLA=(!C-<X-$7:/DKT"XMQ,.:K_ &!<=*N,K$2C<PCI$?\
M96W8,XK$311S\M=_]G'E;*@%@OI6D*MB)4[G$'1%_N4G]BC^[7<_8%]*3[ O
MI5.L1[$XDZ*N/N4W^Q1_=_2NY^PKZ4GV!?2E[8;HG$#15_N5M:=I$:VS@H.E
M;WV!?2IHX BD"G*M=6"-*SN>4>)M+6/S"%KRC45V7+#WKW_QA:JMNQQVKP/5
MQB^<>]>AA9\QPXB'*5DZ4A^]3D^[36KTX[' ]&#<TV@<BG+UK7H),"/EJ2W^
M^!3:6$_OQ7/4=D:4U=GIOA331/;AMN:ZB315('RTOP]M%ETP,1VKMC8KZ5XM
M2O:5CU8T+HXB+15[I36T1=_W*[D6*CM2?8%]*Q]L7[ X?^Q1_=IK:*-WW:[K
M[ OI1]@7TI^W*5$X?^Q1_=HDT48^[7<?8%]*#8*>U)5P5$Y;1]&1)\LE0:KH
MJM=DA*[2&T6)L@4V6S61\D5'M/>N:1A96,OP_IR00_=YKH0,#%0P0B)<"IJS
MD[LM!6+XB_X\V^E;58OB+_CS;Z4Z?Q(4_A/G#Q3_ ,AA_K62*U_%/_(7?ZUE
M#[M?04?A/%K+4:_-$?6G#FA.#75$Y6A9!Q4<8^<"I320C]\*QK/0NEN>S?#G
MBS7->GJ/E6O,?A_Q;+BO4(Q\BUX6(?O'K4%=#QTHI:*YCK$I.].- H!H:101
MQ3J2@5B%HPU<]KNG++ WR\UTV*KW$ D0@UI"=F93A='SYXFTHPNS;>E<<IP6
M%>V>,]*'V>1@M>*S(8[EP?6O4H3NCSJL1%7FGTO&!BF,>*]"".22LQW:E'2F
MJ>*4GBM$[,@CD/RFMOP=<&&_&#_%6$_0UH>'G\N^3_>%<&*C=';AWK8^G]#?
M?ID;>U:58_AIMVC0GVK8KPI;GLK8****0PHHHH **** "BBB@ HHHH YKQ==
M!-(F3/:OFN_.Z]E/^T:]S\>7ACCDCSUKPN[YN&/J:]3!0ZGFXR1!VIR\&G./
ME%(>%KUXK0\UBL.]1PC=<J/>IC_J<TW3UWWJ#WJ9ST+IJYZWX.M<Z<_'\-<7
MXRB\J=_K7IG@^VQIK<?PUP'Q"A,;L<=ZX83O4:-90TN<0O*5(G3%16_*U*O^
MLQ7=3U1SR0O>HIOO U+)PXIDG45,UH5#1GI7PONO*NL$]Z]QB?S(PPKYT\%7
M)ANEP>]?0&DOYEBC'TKP<1&TKGM8>?-$O4445S'0%%%% !1110 4444 %%%%
M '+^.O\ D 2_2OFRZ_X^6^M?2?CK_D R?0U\V7?^O?ZUZ."1Y^,W(SS01Q2I
MTIU>U#8\F6Y%3UZ4G\5.K61+%[4(,4W/S5-QMH\RDM")SFDZC%(.6-.'6N:I
ML:TW9G3^"[PP:Q&">,U]%:?<BXMU(/:OEO1[@P:DK ]Z^B/!MT;G3P2<\5XV
M*A;4]7#3OH=11117"=@4444 %%%% !37^XWTIU(_W#]* /G'XBC_ (J!S[FN
M-[UVWQ& _MQS[FN*3D5[N%7N(\+%+WV.*Y%"=:EC *FHQ]XUZ,6<MM"1_N5%
M%_K!4F<TV+_7BL*ST-J.C/?/AA_R"OPKT"N!^&7_ ""OPKOJ^<J_&SWJ?PH*
M***S+"BBB@#Q_P"+,A6117DCC<,UZG\7FQ*M>5QG(KV<&KP/,Q7Q#$&&J>0_
MNL4P\&@G/%=\=#SFPA'[HYI8FPK"DZ+BHD)\P#U-.;T'#<ZCP98-<:CG&1NK
MZ%T6V$-B@QT%>3_#:P#W 8BO9XD$<84=J\'%3O*Q[6'A97)****Y#I"BBB@
MHHHH **** "BBB@#/U.V6:W8$5X=XVTDK=,P7C->_2+O7%>?^,M*$D4CA:Z\
M+4L['-7A=7/!60HQ%"#FKVH0&&X8$8YJIP!7LJ5XGE5%9D3?*V:L01^<0!4$
MPRO%;GAW3Y)YU.W(K.I.R-*4;G4^#]$)GC=E[U[=8VZP6Z #'%<QX7TA8H%8
MKSBNQ4;5 ]*\6O*\CU:4;(6BBBL34**** "BBB@ HHHH **** "BBB@ [5XM
M\4)RMX5S7LTCB-"37A'Q0N5DU+Y3WKIPOQF-=^Z>< ?.QIR]:51UH7[U>XGH
M>+/5C9$W8 KV'X>6>+6-B*\GMH_,F ]Z]W\"6H334.*XL1*R-**U-3Q+!OTR
M3C^&OGC6HC#>2?[U?36LP[]/D'M7SOXPM_)O6X_BK+"S-ZT# @&.34HY:F#
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
M*EKP#V0HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M#WBU6O48_N#Z5Y=X _X]UKU%/N+]*\'$_$>QAU[HX4M%%<QU(****!B4M%%
M!1110 AKD_%G_'G+]*ZPUROBL?Z'+]*WH?&<]?X3YXU,XOYOK6;CY\UH:MQ?
MR_[U4L9%?04%H>-/<F3[M,;[]/0\8IC??KH9D+(.*ACYE7ZU.3E:A@'[\?6L
M*A<-SV+X= ^:E>OCH*\D^'@_>)7K@Z5X&*_B'N8?X HHHKF-PHHHH **** "
MBBB@ /2O/_B%J 7298L\X-=^WW3]*\5^(]XP>2//'-;4(WFC*M*T3R1B6F8^
M]3J?EQ4,8R2?>I:^BIJR/#F[L?;C#$TDGWB:>#M%-?D53T,T]0MANG KVWP!
M;8LU..U>+::NZ]4>]>_^!K?;IPX[5YF+GH=^'5SLHONBJVI+NMG_ -TU;B'%
M17:YA?Z5YB=I'?)>Z?.OC&#;J$IQWKEQ]RN\\<0;;F1L=ZX0?=KVZ#T/*KJS
M$0<4Y>*!UIKG!KK3T.=#)5[UW'PYNO)U1<GO7%/RM;?@^X,.ICGO7+B5=6.N
M@]3Z;M9?-A#"IZRM!E\VP5O:M6O!DK.Q[$7=!1114C"BBB@ HHHH **** .8
M\<_\@&3Z&OFVZ'^D.?>OI'QU_P @&3Z5\X7/^N?ZFO1P.YY^,(#S2]:1:5>M
M>Y$\I@?NXI!Q2YYH-.;L2T&TDYI#R:N00^9$2!5:2,QMS6?,5;08_04B\"E?
MD4'[M4"';?XJ8XW"K( ^S^]0#[I!J9ZH<'J;7ABZ-O>1\X^:OH?0;P3V40SG
MBOF73Y#%=(1ZU[OX%OO/C1<]!7C8JGU/2PT];'?BBBBO./2"BBB@ I'^X?I2
MTC?=/TH ^??B(/\ B<.?<UP8Y:N^^(W_ "%9/K7!1]Z]S"OW4>+B5[[%-!YI
MQZ4Q#S7HHXQ3]W%$/^L%(>M/A_UHK*LO=-Z2U/>_A@,:5^%>@5P/PS_Y!?X5
MWU?.5OC9[E/X4%%%%9%A5'5O^/"3Z5>JEJG_ !XR?2FMQ/8^=?'*?Z8W^]7*
MH.!78^.%Q=-]:Y&,5[6%>AX^(W%/3%'\.*3^*@GFO2BSC: #BE3Y'!-*.M)-
MQR*FJ[H5-ZGJ?PYOPEP 37LT+^9&&KYO\%ZA]GNQD]Z]]T6^6>U3!YQ7S^)A
M9W/<PT[JQKT445R'4%%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !7-^+YO)TUFSCBNDKB/B!=!-*8 ]JNFKR1
MG4=HL\*UUS/>LV>]9 &'%:5RXD<DU188>OH*2LCQ)OWATW*5:\.VQFOEX_BJ
MHW(Q73^"+3S;X$CO45G9&],]V\,1>7I40QVK? XK-T>/R[)%]JTQTKPZCU/2
MI+0.U5+U-UK(/:KE0W S P]JF+U+DM#Y^\<VVR>1L=ZX$)@UZS\0+3ACBO+W
M4 XKV:+NCRJRU&J,"H7_ -<#4_1*BQDYK>K&Z,(O4]>^&%Z(UVDU[#&V^,-Z
MU\]^!+TPSJN>IKWW3WWV<;>HKQL1"S/7P[O M4445S'0%%%% !1110 4444
M5K\XLI3_ +-?.OC=C)>2CWKZ)U'_ (\)O]VOG#Q5(#J4P/K7;@U>1RXGX3F8
M1@8I\AR,4B_>HZO7M11Y$MQJH<5Z]\)(!AB17E"XW 5['\*DVH:X,:_=.["K
MWCU0#'%+117CGIA1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !7AWQ6_P"0A^->XUX=\5C_ *?^
M-=&%_B&&(5X'ER\L:D-,AZFGCK7OPV/$FM1'^YBMKP1_R,D/UK$;K6YX)'_%
M20_6N?$_ SHPWQ'T_;?\>T?^Z*EJ*V_X]H_]T5+7@'M!1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110!R?C$?Z(WTKYZUC_ )"$GUKZ
M$\9'%HWTKY[UC_D(2?6O3P1YV*W*(/:E)P<4JKWI&'->O#<\R8$TAHZT=:T,
MP(^7-/MO]<#28R,4Z 8F%<U78Z*.Y]!?#<YTD?2NYKA?AM_R"1]*[JOG:GQL
M]VG\*"BBBH+"BBB@ HHHH **** "BBB@ K%\1?\ 'DWTK:K%\1?\>3?2KI_$
MB9_"?.'BG_D,-]:R0>U:WBD?\3=OK64!QFOH*.QXE;<1Z <4[[U,/6NI'./)
M^6D@_P!:*!SQ3H!^_ K"J]#2FM3VCX?<VRUZC']P?2O+_ '%LHKU"/[@^E>'
MB=SV*&P^BBBN4Z0HHHH *0TM(: 8F:44VG"F2F!KF/%&#92_2NG/2N/\73;+
M60>U;8?XS'$?"?/FK_\ (0F_WJJH,U:U7F^E/O51#BOH:+T/%GN)G$F*>_6F
M 9DS3GZUN0-W<41#]ZI]Z&&*=#_K%^M8U=BH;GL?P\^^E>MCI7D?P\_UB5ZX
M.E?/XKXSW,/\ 4445S&X4444 %%%% !1110 C_<;Z5X%\1Y?]/D7ZU[Y)Q&W
MTKYT^(DV[7)$SW-=6%5YG/B7:!Q,(^4U(HI$&WBG=*^@@M#PY;C2:<O-&W-(
M?E%.>PD7=%3=JBCWKZ)\'Q;-/ QVKP/PS#YFIH<=Z^B/#D?EV:CVKQ<4]#U<
M*C: Q4<XS$WTJ6FR#*'Z5P+<[&M#Q7Q_!M\QL5YAT4U[%\0(,P.<5X\XPY6O
M:P[T1Y-=:D8:D)R:5A@TJKFN[H<HX<K5G0)?+U,?6JOW:DLOW5R']ZPK*Z-Z
M+LSZ:\)/YFE(?:N@KE/ DOF:&ASVKJZ^?J?$SVX?"@HHHJ"@HHHH **** "B
MBB@#F/'/_(!D^AKYMNC_ *0P]S7TEXY_Y ,GTKYLNO\ CY;ZUZ.!W.#&$;<8
MI3P*&&:.O%>W$\EC2:"?DS1CG%*P^7%$P-[18/.@Q577+8VS#C%:_A5-\J)Z
MFKGCK3OLZQG'45R2J)2L;QIW5SAT.12]\5&#MJ3MFNA/0R:U)5;C;4,IVR8I
MZGC--(WOFG+X28[CU.Q@U>L?#"^WW&TGI7D[#Y:[/X>7WV:^Z]ZX,3"\6=F&
ME:9]#@Y&12U5L)?.M5?UJU7BM6/904444@"D?[A^E+2-]P_2@#Y[^(Q/]KR?
M6N#0\UZ#\1T_XF<C?6O/HAG->WAOA1XV)7O,>YIBG!J4KFD"5Z<3B$/3-+#_
M *P4['%)$/WHK"M\)M1W/?/A@<Z5^%>@5P'PQ&-*_"N_KYRM\;/=I_"@HHHK
M,L*J:B,V;CVJW45PF^%E]::!GSQX_0I=GCO7&]%%>D?$VS\J?..]>;9[5[.%
MU2/(Q*]X3-!I2.*D5,K7IHX]QBFG-\RFFGY6Q3_X:F;(2LQVF79MKD$''->V
M>"=8\X(K-7A"C$F?>NX\+:N;65?FQ7EUZ?,CTL/.Q]$HX<9%/K'T&\%W8J^>
MU:^X>M>3)6=CTXNZ%HHHI#"BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** &N<(3[5Y1\0[[_ $=TSTKU:;B%_I7A/Q#N
MOWLB9[UT8=7D<^)=HGG?FEGI']:9"-W-6A'E,U[U/X3QG\150Y;%>D?#ZTW7
M0..]>=(O[\#WKU[X=6W[Q3BN7%2LCKI*[/5;1-D*BK0J.,84"I:\63U/3@M
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
MKBE3:9U1FFC7HJG;WJ3' -7*AJQ84444@"BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@".XXMY/]TU\Y>/KC?J<R9[U]!ZG<K;VLA8
M_P )KYH\87'G:W,0>,UUX1>\<>+=HF)!PE6E<!#59!B.C<=M>Y#2)Y2=V/A^
M:[0>]>Y^ ;;RXT;'45XCID1FOH\?WJ^AO"%MY5E$<=J\_%O0[Z*U.M'6I*C%
M/%>2SO@+3&I]-H0Y'->)[;S[1N.U?/OB*+RM0D7T-?3&HPB2W?(_A-?._C&W
M*:K+QWKT,++H>=7B<[%]RFOQ2QG"TC\FO86J.#9DUB^RX3ZU[GX#GWH@SVKP
M2-BLRGWKVCX;7(D=5S7FXQ:'H866MCU>BBBO(/2"BBB@ HHHH **** .%\=R
ME+=@#VKP+4#F\D/O7NGQ"?;$?I7A5Y\UT_UKT\)L>;BMR!.#FG?Q9I,<4X?=
MKUEHCSNI+IZ[M5B/O7T5X-(^QIC^[7SUI*;M0C^M?0W@^)H[1,_W:\G&GJ81
M'64445YAWA1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !7A_P 5?^/_ /&O<*\.^*W_ "$/QKHP
MO\0PQ'P'F*G!-+T-,'+4]AQ7T$-CQ)[C6]:W/!'/B2'ZBL1_]76YX&_Y&*'Z
MBN3$OW6=&'^)'T];?\>T?^Z*EJ*W_P"/>/\ W14M>$>T%%%% !1110 4444
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
MQSU1Z^$6A:HHHK@.P**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH *\/^*W_ !__ (U[A7AWQ6_X
M_P#\:Z,+_$,,1\!YA%RQJ0BHD^5C4A/%>_$\2IN,;TK<\$\>)(?J*PSTS6]X
M)'_%20_6N;$_ S?#/WCZ=MO^/:/_ '14M16W_'M'_NBI:\$]L**** "BBB@
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
MU.;I7OQV/$GN(?6M_P $_P#(QP_45@_PUO>"3_Q4</U%<V)^!F^&^(^G+?\
MX]X_]T5+45O_ ,>T?^Z*EKP3VPHHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH Y+QG_ ,>C?2OGK5_^0A)]:^A?&?\ QZ-]*^>-6/\
MQ,9/K7J8+8\_%;D"_=H/2F*>U*QYQ7L1/*EN"]#3>]+TI#Q5DW!1EJEAXF%,
MZ#-+"?WHKFK[&]'<^@OAM_R"1]*[JN#^&G_()'TKO*^<J?$SW:?PH****@L*
M*** "BBB@ HHHH **** "L3Q'_QY-]*VZQ?$7_'DWTJZ?Q(B?PL^</% _P")
MNWUK*'2M7Q1_R%W^M9(-?047[IXM;<>G2DSS2]*:W KK6QSRV$!YIW6F@4IZ
M5+(ZAYA0\4QY22*1N>::!D5FX'1!V)O..*/..*A49-. YK"4-2W.P_SCBD\P
MFFD<T <TX1U$YDBL<4@&3S0>*#Q5\I',"CYJ7'S4=!FE[9K2*)<AP44D@]*5
M3Q3B,BM24,BZT2T+P34>[<^*!LL*H\G-5V/:K*GY<52?/VD*.]<E:>AO2C<Z
MWPCIYN;J,XSS7T)H]J(+*/ [5Y9\.-+\Q5<K7L4*;(E7T%>+B)W=CU:,+*Y)
M1117,= 4444 %%%% !1110 5YI\4Y?+LQ]*]+KRKXM2#[(,&MJ'QHSJ_"SQ6
M;YY":>GW:C/(IXX6OH:1X57<&'S4C<4HY&:8QK:6QFA^,LOUKU+X?VX\Y&Q7
MEL/S2J/>O8O ,6"AQ7DXF1UT%J>JP#$8J0GFF)PHH)^:O*>K/6B]"2DI>U-I
M%,6L#Q1$)-,<>U;QK)U]=VGL/:KAN93V/FGQ%'Y6HD#UJF,!*V?%T6W42<=Z
MP0W%>[AGH>166HAY-2IQ3%&32@_-BNR1SBR=*ZCP7/MU.%<]ZY=_NUL>$IMN
MMP#_ &JXL2KQ.G#/WCZ>LS_HD7^Z*GJI8,&LH?\ =%6Z\!GN(****0PHHHH
M**** .7\=?\ (!E^E?-EU_KW^M?2GCG_ ) ,GTKYIO3BY8>]>A@=S@Q8B\BA
M1S3%.*>>*]R.QY+W'CK4<WW:=GC-))S'FE(JF;G@[_D,0_6OIJQ_X\HO]T5\
MT>#1_P 3:'ZU]+V/_'E%_NBO"QOQGLX7X2Q5>[@$\14^E6*1ONFN$ZCYW^(%
MEY.HR,!7$6YW UZU\1[')DDQZUY);_*6!]:]K!O0\?$1]YE@@8J(=:65L$4$
M?*#7HK<Y1C=:E/RPYI-N122G]R165570)ZG;^ ]2:*XC3/!->^V4HDMD(/:O
MF/PK<>5>1\]Z^A_#EUY]JG.>*\7$PUN>KA9:6-ZD/W32TA^Z:XSM/&_B,O\
MK#]:\CAZ-]:]?^(HXDKR&,8W?6O=P[]Q'CXGXAR]Z5>M,!P:>>!FN^&QQ/<!
M]ZG1?ZX5'GO3HC^\!K'$+0VI;GO_ ,,O^05^%=]7G_PP.=*_"O0*^=J_&SW*
M?PH****S+"BBB@ HHHH K7EL+B(J:\I\7:'AW*+7K]8.JZ4+O=E<YK2G+E9G
M4AS(^8M4M)()SE>]0VS=C7HGC30?L\C%4KSC8T4C#'>O8HU=+GE5:=G8MR@;
M>*@ZTP2EN#4L0R:Z5.[,+60[&$I$Z4Z3CBFK]VMD9RV'9S1Q46[FAF(JD2D3
M#%+WJ$-Q4J\KF@=M!C'YJ=VIK#O0#0(7 I'Z4@/- Y:DE<!<?)3D'R&F^U&<
M<4FBTR,]:DM9/*?(ICC%(M<\X7-(3U.OT'7)$N%0L<9KW'PUJ"SV2Y;)KYKM
M9?(</7K7@C6=YCC+5YV)IZ'HX>>IZW13(V#("/2GUYIW!1110 4444 %%%%
M!1110!6OGV6KMZ"O!OB'=^;.1GO7N>L-LTZ4^U?.?C&X\V[<9Z-7=@XW9QXJ
M5D<Y'UI6Y.*9%4B<O7LP5D>5>[$B&7VUZ]\/K,&%6(KR*WYOU3WKW7P%;[;-
M3CM7'BI:'91CJ>A0C$:CVJ6HT^Z*DKQ7N>G'8****104AI:;WIB8H%(PXIU(
M:0/8X7Q[:AM)E?'.*^>V!2=@?6OI7QE%YFD2#':OG'4H_)O6'^U7JX-Z'F8E
M:C<?+4:]:<3P*,8&:]*7PG%'<TM(E\NZ'UKZ&\&OOTE3[5\U64VRY'UKZ+\!
M2A]%7GM7D8M:'JX9G74445YYV!1110 4444 >,_&#[ZUY-'TKUCXP_?6O)5/
M%>U@O@/)QGQ$C],TA_U5*WW*:W^IKMJ'' ZWP/\ \?L7UKZ*LO\ CSC_ -VO
MG;P(,WD9]Z^BK/\ X](_]VO$QGQ'KX3X2>BBBN,ZPHHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M KP_XJ_\?_XU[A7A_P 5?^0A^-=&%_B&&(^ \Q3J:!UIH.#2GCFO?CL>)+<1
MNM;G@D_\5)#]:Q''R9K:\$<^)(?K7/B%[C.C#+WCZ@MO^/:/_=%2U%;?\>T?
M^Z*EKP#V@HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH Y+QG_QZ-]*^>=7'_$PD/O7T+XT_P"/1OI7SYJY_P!/D^M>I@=C@Q134=Z"
M.<TY3Q1FO8B>3(:1FF]:?GBF#K5HCH.Z\4Z$?O@*8O!S4D',XKFK['30W/?_
M (:C&DCZ5W=<-\-_^02/I7<U\Y4^)GNP^$****@H**** "BBB@ HHHH ****
M "L3Q%_QY-]*VZQ/$?\ QY-]*N'Q(B?PL^<?%'_(7?ZUD@=ZUO%'_(7;ZUE#
M[M>_0^$\6MN*.:#\W%(O H4\UV+8YA<=J,=J#2CK18CJ1D8XH44]AS3:=KHU
M3$VX-+C'-./(I#TQ6,D%[C2.]*HXS2]L4O08HB@N)UH(S0O%+3DK$W$ZC%+V
MQ2#K2]\U41@..*5GQ2'K4<O)I@D/4TFW#9H6G/\ =K.4K%V&^9AJN:99F\U&
M,8SDUFJ"TF*]!\%:,9KN*4KD UY]>>AV8>!ZGX,TO[#:KE<9%=C56S@6&WC
M&,"K5>1)W=SU(JR"BD- J2A:*** "BBB@ HHHH CG?9"S>@KQ/XD7_VH,F>E
M>S:B=MA*?]FOG?Q=<F2\E4GO75A8WE<PKNT3CP<MBI2/EJ%?];4[?=KW:>QX
ME1WD"?=IA6GH?EI,YK6;T(ZCK5/WZ?6O=/ ]KMMXWQ7B5@N^Y0?[0KZ#\'0A
M=.B..U>/BCNPZU.M XI-N6IU**\VYZB0M%!HI%#:HZG'YEJRU?J"Y&8S51W,
MY;'SSXZMO+U \=ZX\+7HOQ#AQ?$X[UYZO)->[A=CQZ^XBC%(1@YI],D/%=;.
M84\K5G0I?)UF%O1JJJ>,4MIE-0C;T-<U=7B=%#25SZ>\-WGVFSCYSA:WZX3X
M?W!FM5R<X%=W7@5%:5CVX.ZN%%%%06%%%% !1110!R_CHXT&3Z&OFJ[^:X8^
M]?2GCO\ Y $OT-?-EP/W[_6O1P)PXLC44_KQ31P*<O!KVH'D,,<8I&^[BG=Z
M3OFE,=,Z'P>-NK0_6OI2Q_X\HO\ =%?-GA/_ )"\'UKZ3L?^/*+_ '17AXWX
MCV<)\)8H/2BBN$ZS@O'&G>=8R-BO KV+[+<E>G-?4>O6HN+!UQGBOG+QC9FU
MU,C&.:]+!SZ'!B86U,4C?@T]^% I(ONTDC5[">ESS&.!^6DD7,= /RT\G,53
M/4A;AI<_D72\]Z]^\ 7GVBW'/05\[KE90PKV3X8ZAM3:37F8J'NGI866IZ_2
M'H:2-MZ ^M*>AKRCTSR/XB)\DAKQY.K?6O8_B(X\N05XY'U;ZU[>&?NH\?$K
MWF)MYI>O%+FD7@UZ$#B$QS3HO]:!0.N:(_\ 7BLJ[T-:6Y[[\,1C2OPKT"N
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
M8%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %>'?%;_ )"'XU[C7A_Q5_X__P :Z,+_ !##$? >
M7#AJ>W2D498TXBO>BSQ)[@?N5N>"/^1CA^M8)/:MSP2?^*DA^M88GX&;X?XD
M?3UO_P >T?\ NBI:BMO^/:/_ '14M> >V%%%% !1110 4444 %%%% !1110
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
M_P!T5\Q^%VVZS /]JOIO3O\ D'P_[HKQ<;\1[.$^$M4445PG6%%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %>'_%7_ )"'XU[A7AWQ6_Y"'XUT87^(88CX#S!3AC3R<5&O+4]A
MQ7O11XD]Q&'RYK:\$<^)(?K6*Q^3%;7@?_D9(?K6.(^!G1AOB/J"V_X]H_\
M=%2U%;?\>T?^Z*EKY\]H**** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** .1\:?\ 'HWTKY[U?_D(2?6OH3QI_P >C?2OGG5C_P 3&3ZU
MZ>!//Q1 O2CM3%/-*QYKV8'E2%[4P=:4FD/%7L1T'BGVW_'P/K49/RTZV/[X
M5RUMF=%#<^A/AS_R"A]*[>N&^&YSI(^E=S7SM3XF>[3^%!1114%A1110 444
M4 %%%% !1110 5B^(O\ CR;Z5M5B^(O^/)OI5P^)$S^$^<?%/_(7;ZUD_P -
M:OBG_D,-]:R1UKZ"C\*/$KZL5!@&A.IH;BD3K78MCF9)WHIK&C/RU+T0D-8\
MTUFYI&R1FH@236$I:FO+H6@>*:QIJ9I#DFI<P4;LDS\E(/NTSGI2\YIQD.4=
M!Z4\5'T-.8X%;Q=S)H4T4G:D)XJY$=1?XJ<H'F+]:8.F:1&_>K]:QJ:(VCJ>
MM_#NQCG<;A7J]M81P'*BO,?AFXWCFO6@<BO Q3?M#V\,ER"T445RG0%%%% !
M1110 4444 %%%% !112$X&30!Y%\5)=D@%>1L<MFO2_BY<#[2H![UY>3\H->
MU@U[AY.+?O$F,U'_ !XJ1>E1G[]>C%:GGL7'S"E?G%*P^7-1*<M6KV")UWA&
MY%M-G..:] _MM1&/F_6O(K2[-MR#5TZV^,;C7!6A<Z82LCU1-=7;][]:/[=7
M^]^M>4?VZX.-QIXUU\_>-<SI6-G4/5/[<4#[WZTU==7/WOUKR]]<?'WC3%UQ
M\_>-2Z>@*H>IOKB@?>_6FIKRY^]^M>8RZV_E_>-5TUU\_>-$:>I7M-#TG6=4
M6:S<;NU>5WK!KAC[UJ2:NTMJP+&N>:0O(3[UW48V1R5'<D8XQ4O'EU6)S3MY
MQBNI[&(\GBH6IRG)H8?-4,:-OPU+Y>H0C_:KZ6T<YTN$_P"S7R[I,GE:G!_O
M5].>'Y5?2(,'^&O#QRU/8P;]TU:***X#M"BBB@ HHHH Y;QY_P @"3Z&OF^;
M_6O]:^D?'(SH,GT-?-MSQ<,/>O1P.YP8S8C7H:5>O--/%*>!7MQ9Y+'=Z8QY
MI2>*B<\9J9[! Z+PH?\ B=0?6OIBP_X\8?\ =%?,?A!LZU!_O5].6'_'C#_N
MBO!QGQ'LX/X2S1117&=@4R1!(A4]Z?10!XE\4[%8Y@RBO,XR.E>T?$VU,RE@
M,X%>(L6CN'4]C7KX27NH\O%1]X=G]Z:0_?IN?FS3STS7IQV//8C??!ID_(XI
M_P##FD0;P:51:%4]SI/!%X;>]'/\5?1.D2>;IR-ZBOF'1IOLUZAZ?,*^D?"\
MXET6(YYQ7C8R-CUL.[G(>/\ 'V62O#G'[QOK7MOQ ;_1Y/QKQ-N9&^M=N%C[
MJ./$/WK$D1^4U&OWS2@X%-[UZ"1QM#A]ZB/_ %XH/ S21?ZT&N>N]#2EJSZ
M^&7_ ""OPKOJ\_\ A@<Z5^%>@5\]5^-GNT_A04445F6%%%% !1110 4444 %
M%%% !1110 4444 %!Y%%% %.6QCD;)%5GT>%NJBM6BG=BLCS3Q-H:^>=B_I7
M!ZGH3YX7]*]UOM/6Y;)%9,_AU)/X!733K\J,)4KG@%WI$L()*_I6+/&T;<U[
MGXB\-K% 2J=J\HU;3'25@$/Y5Z-&MS(X*M+E=C%C;]WBG+TJ$HT<FT@U)G!K
MNC+0Y90T) *#1VICFM#$6/F2AQ^\IB'#9J7J<U#5V5<CDXKJO!UTT-W& >IK
ME9.M;?AJ39?19_O5QXB.AV8>1]+Z4V_3XF/<5=K.T1PVF0X/\-:->$]SV%L%
M%%%(84444 %<OXRN532)!GM73GI7F?Q!O_+M)$SZUK2C>1G5=HGBFJR^9>,1
M_>JOU%,=S+*Q]ZD4<5[])61XM26HY#6KH<?FWH'O6,&^:NB\)1&74AQWHK;#
MI[GO/A6$1Z:H]JZ)>E9.AQ^79**UJ\"I\3/4I[#Z2BD-9FPM.IHHH&F.HI!2
MTB@I#124Q7$/2LG6XA)I\H]JU35*_7?:NOJ*N&YSU=CYQ\40^1>/QU:L1""*
MZ_XA6Y@N<@=37$QMQ7NT=D>3+<E)PU56<B?-2N:@<'K6T]BH,];^'EX0J+FO
M:8#F%3[5\^> +G;/&I/>OH&T.;6,^U>'BE[QZN'=T34445R'0%%%% 'E?Q27
M*UXLV/.:O;/B>I*5X?(<3M]:];"?">9BMV/_ (J,?-3<TX=,UZ;^$\_J:?A]
ML:];C_:KZ@TS_D'0_P"Z*^6= ;&OV^?[U?4FE.&TZ#!_A%>)C?B/7P?PEVBB
MBN$[ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ KP_XK?\?WXU[A7AWQ6_Y"'XUT87^(88CX#S
M"'J:D-1+PU/8\5[R/$GN-:MWP2/^*DA^M8A'R9K=\$#_ (J.'ZUAB/A9OA_B
M1].6W_'M'_NBI:BM_P#CVC_W14M> >V%%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% '(^-/^/1OI7SUJP_XF$GUKZ&\9C-HWTKYYU<
M_P#$QD'O7IX(\_%%51WH(YH4\8I2:]>)Y<A,9I"*=G%(36AF(.>*? ,3"HUX
M.:E@YF%<U;8Z*.Y] ?#;_D$CZ5W5<+\-O^02/I7=5\[4^)GNT_A04445!844
M44 %%%% !1110 4444 %8GB/_CR;Z5MUB>)/^/)OI50^(B?PL^<_% _XFS'W
MK' XS6QXG/\ Q-6'O6/GC%?04/A1XE;<7[PIT:Y--7@4Y6VFNZ.QS,5ASBF-
MPM/W<YIA^8XJ*CT*IHF@@,B=*&M"IZ5TF@:4;F,?+G-= WA1FP?+_2O,K5>5
MG9&FY(\]^S%1TI4MB3TKT%_"C8_U?Z4L?A1A_P L_P!*Q5=&BHL\]>U([4PP
M';NQ7HLOA1B/]7^E4=0\--;:?)(4Q@>E7&LARHNQP:C.?:CJ::K8E=?0TJGY
MJ]&B[HX9JP[%(1Q2TAZ5T,Y^H=%IB?>S4@Y&*3;M!KGJ;&T#TGX<WVRYVY[U
M[=;/OA5O6OF_P7=_9[T<XRU?0^CR>;I\;>HKQ,6M;GLX5Z6+]%%%<1UA1110
M 4444 %%%% !1110 54U"7R;1W]!5NLO7SMTJ4^U-;B>QX3\0;S[;=GG.#7%
M*,C%;?B6?-Y("?XJQH>>:]_"Q]P\7$N\@SCBFCEZ1SAJ%/.:[8G,T2GIBHL;
M34N:8W)JWL0G85S\M1G.*<>11VQ7/:[+YAFTXS2J#C-/[8I.@Q4R@7S!RPI
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
MKQ+XB6)7<P%>XL,J17F_Q$T[S+8E5SQ71AY6F8UXWB>$8(.*0U:GB,=RRD5
M<>9BO?HO0\2HA4; Q2/Q36X<4K]!6LD9[$:C+5U7A.[,%Z.>]<P@K1TZ?R)P
M1ZUA4C<VA+4].U^3S])9_:O';O/VDX]:]4GN!-X;9B><5YA.NZ=C[T4QRD+'
MP*5Z:>,4_&174MCG>XT_=ID7^M%/[TD0_?BN6OL:TOB/??AA_P @K\*]!K@/
MAD/^)5^%=_7SU7XV>]3^%!1116984444 %%%% !1110 4444 %%%% !1110
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
M@HHHK,L**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"N5\760FTZ5L=JZJLS7D#Z7*/:J@[,F:NCY>U*'RKV0?[1JLW05L>)H?*O9/
M]ZL4G*BO>PTKH\2LM23.$J/=S2YRN*;MYKO.8?UYI4/[Q?K0!A::O#BN>ML;
M4=SV+X9R;I@*]<KQOX7'-S7LE?/5_C/;H_ %%%%8FH4AI::YPA/H*!,XSXAS
M"/1F.>U?.URV^Y+^]>T_$/41)9O"#TKQ9TY)KU<%'0\W%RU$!^<&I9GW 5$@
MS3GKUHGGO<:.: <'%*E(1@YJ9+00UOO4$\8I<=Z7;FH42T]"+.#2].:".:4C
M(H<"HR$]Z#R,T['RTN/EIJ"*YB,"E-/ XII%)PU)DQG4T['% 7!I^*.05]1G
M;%-/'%2[>]1L,M4J.H^85>*D#<TFWB@+S6BT,GN2$\5&7P*<QXQ41&:L21*J
M>8FZO1?AO>?9Y=N>IKS^'Y82*Z/PA<^5>H,]6KS\5&YVX>5F?2%J^^W5O45-
M5+2FW:?$?45=KQ7N>NM@HHHI#*FI#.GS#_9-?-GBB/R]4F/JU?2M_P V4O\
MNU\Z>-(]M]*?>NS".TCEQ/PG*;>=U2ALKBF?\LJ1#SBO;6QX\MQK?(VZO8_A
M)<^8C GI7CEQ]TUZ-\*KW[/(5)ZFN'&1O$[,*[2/>12U%;OYD2MZU+7C,]5!
M1110,**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ KP[XK?\ '_\ C7N->'_%7_D(?C71A?XAAB/@/+DX
M8U(QXI@&6IS#(KWEL>)/<"/ES6[X)'_%1P_6L(GY<5N>"3_Q4</UK#$? S?#
M_$CZ=MO^/:/_ '14M16W_'M'_NBI:\ ]L**** "BBB@ HHHH **** "BBB@
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
M71V4*EF>QT5#:R"2W5L]14U>4>B%%%% !1110 4444 %%%% !1110 5D^(9
MNDS<]JUJXCQIJ@M[:2/=U%73C>1$Y61X/XEEW:@_^]5 _P"K%3ZH?/NW;_:J
M''R 5]!0C9'BUY)L7/R48XS2#TH)P,5V'.AV?D-+81^;<K]:CS\I%6]('^FQ
MKZM7+7>AO36I[7X B*!>*](KD/"%EY-K&^.HKKZ^>JN\CVJ2M$****R9H5=0
M8+92G_9KYT\:W.Z]D&>]>]Z_<^392#/\-?.7B:7SK^7G^*N["1UN<>*EI8S%
M&8!3.@I4;]V%I&^[7LQT1Y$M6,!W-BO6?AC8>9\Q%>46R[IU'O7N?PR@\N'.
M.U<.,EIH=V$5Y'I$2;(POI3Z**\<]4**** "BBB@ HHHH **** "BBB@ HHH
MH *:XRI'M3J0T SRWXCZ8%L'FV]:\7484BOH;XBQ;]%;CM7SS,?+F*^]>Q@9
M>Z>7BX^\!'RU$HSFI"W%)&.#7H2V.'J7]%G\J\3G^(5](^%9 ^C1'/:OF&W?
MRKE#_M"OH/P/?>9IL29[5Y6.6AZ6$9W%%%%>8>@%1W S;R#_ &34E-D&8V'J
M* /G+QS:E=6E?'>N35?W>:]6^(NE^7%)/MZUY*DF1MKV<*[Q/*Q4=1R\FFS#
M(J0#:<4DWW:[+71QK1E[P]=_9[Q><?-7TEX8N!-I,9SU%?+-K)Y5RI]Z]]\"
M:MYMI%%N["O+Q<-#T\++4]%HI!TI:\X[@HHHH **** "BBB@ HHHH **** "
MD-+2&@&9.O7'V>R9\XXKYZ\57YN-3;G/->X^-YO)TECGM7SKJ<OG7I;/>N_"
MPNKG%B96T*[G%(#N%(W)IP&!7I6LCS7J5F8B0#WKU7X;VA%Y'+BO+_*W3)[F
MO>/A_IOEV44N.U<.)EH=V'CJ>D#[HI:!THKS#T0HHHH **** "BBB@ HHHH
M*\0^*I_T_P#&O;Z\0^*H_P!/_&NG"_Q##$_ >79^:G]!3 ,L:=UXKWXNYXDM
MQCGO6]X'&?$<)]Q6"PK?\$<>(X?K6&*^!F^'?O(^G;;_ (]H_P#=%2U%;_\
M'M'_ +HJ6OGCVPHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH Y'QI_QZ-]*^>M7YU"3ZU]#>-/^/1OI7SSJG_(2D^M>G@]CS\65EX&
M*7M3?XJ4U[$$>5(3/%(O%#=:0U=K,E,4]:2V'^D@^]':GVP_?"L<0M#HI/4^
M@_AO_P @D?2NYKA?AM_R"1]*[JOFJGQ,]RG\*"BBBH+"BBB@ HHHH **** "
MBBB@ K%\1?\ 'FWTK:K%\0_\>3?2KI_$B9_"?.7BH_\ $V<>]8R\"M?Q3_R&
M7^M9.*^DHOW3QJ[U'+TI%ZTE%=!S6!J(?]8*1^E.@^^*PK?";4UJ?0'PR_Y!
M/X5WU<#\,O\ D$_A7?5\W5^-GMT_A04445F6%%%% !3).8V'M3Z1N10#/(?'
M]AB-Y,5Y$YVOMKZ"\?V0?36('.*^?+M3'>E3ZUZF$J'F8J&HIH!H;I35Z5ZJ
MU/-M87-#<C%-'6E'6M$3U(Y5Q'74^![@KJ<*Y[US<JYCK1\*S^3K4.>FZN#%
M1NCNPSU/J6T.;2(_[(J>LW2;M;BRBVG/RBM*O":LSV$[A1112&%%%% !5:\F
M$,+$^E6:Q/$<QALF(]*J*N[";LCPGQ[=^;J[@'O7'1\&M;Q1.9=8;)[UE@<B
MOH,-&T4>+B'J2$\5%GFGOTI@'-=B.0FBZTV?KFG+P*;)TK.H[(J.K-WPA%NU
MB$^]?2]@H6RB_P!T5\\^"(-VH1-CO7T1:<6D?^[7@8M^\>SA%9,FS2TT=:=7
M(=2"BBB@84444 %%%% !1UHHH \S^*%N&L\@=J\-/RSE:^@?B)'OLC]*\ N%
M*W[CWKU<$]#S<7'6Y(S#;BH<8I-W[W%/<<U["V/.V!1\IIBCYC4O\-,C^]3D
MM">HZ ^7,#[U]!> +T-I*)GL*^?)>,$5Z[\/+P^5'&37CXR!Z6%=F>OCI12+
M]P?2EKR3TPHHHH Y?QU_R 9?I7S9=<3N/>OI3QQ_R 9/I7S5>_\ 'TWUKT\
M<.+&J<"ES3*4]*]E*YX\MP!^:E/K3!UJ7^"G):#CN:GAC_D/0?[U?3^G_P#'
MA#_NBOE_PQ_R'X/]ZOJ#3_\ CPA_W17@X[XD>UA/A+-%%%<!UA1110 4444
M%%%%+J!Y?\0]-,RR2XZ5X?(FV:0>AKZ=\662S:1,V.<5\WZA;F&\F!'\1KTL
M)/H>?BH6U*$6=]2MS21K\QH_CKV(,\R0?PXI5.!33]Z@\&M3.X[-%--#=*>Z
M)L./W:;!_KP:<?NTD(_>"N6M\)U4'J?0'PS.=+_"N^KS_P"&/_(*_"O0*^=J
M?$SW(?"%%%%065;^Y%M;F0G&*\1\<Z[Y]RRJ_>O5O&,Q@T61QUQ7S1K%_)/?
M-D_Q5U8:-W<YZ\K*Q%(Q>0D^M$G"T@Z TY^0*]>$3R9R(0ASFIE8=*D* 155
MR=]=*CH97N.?_6 BNF\.Z@;>=/FQ@US)J:WG:)@0>E85HW1M3EJ?2WAK5EO+
M=$#9(%=+7BWP]UO;/B1N/K7JT6K0R' 85X56FXRL>Q3FG$TZ*CCD$@R*DK$T
M3"BBB@84444 %%%% !1124"([B7RHBU>,?$#4]UPRAJ].U_44@M6&[G%>">+
M+\W%VW/>NS"PO*YRXF6ECG&DS(2?6G#I54D[JLJ?EKW::LCQYN[&]&I&YYIS
M"C'R5H]42B//%:>AIOU&'_>K+/2N@\+0&2^C..C5P8B6AUT5=GT9H$8728./
MX:U:H:.-NF0C_9J_7A2W/96P4444AG%^-KKR+=AGJ*^?]4D\R\D/O7LOQ,N?
M)7&>M>(3OOG8^]>MA(^[<\S%.S8U1S3W^[0J\9HD/RXKO:LCSMV3:4GFW\:^
MIKZ$\$V1MK53C&17@_AB R:Q#QQNKZ:T>V6&QBP/X17E8N?0]7!QTN:-%%%>
M>=X4444 %%%% !1110 4444 %%%% !1110 4444 <KXXC\S2F'M7SEJD1COB
M/>OIGQ1"9M/91Z5\\>([8Q7[9'>O3P4K(X,4M3$-/4X%,[TIX%>ONCS6,8_O
M5(]:]H^'=T66-,UXQCY@?>O3OAU=;;Q%)KS<9&Z.O"O4]R'2EID;AT!%/KQS
MU@HHHH X+XE6ZMHK$#G%?/80I,<^M?2OCJW-QI+*!GBOGK4K8V\Y!'.:]3!R
M]TX,3&\BJQRPI)/F%,7I4B#=7I(X)JQ5=2K ^]>D_#[4S'=(A:O/+A1MK9\*
MWAMK]23QFN7$0NCHHSLSZ?M9A-$&'I4]<[X<U%+BT7GG%=%VKQ9*SL>K%W04
M445(PHHHH **** "BBB@ HHHH *1CA2?2EJK?7"P0,6..*$!YY\1=746#Q!N
M17AKR;V+>]=IX]U1I[N6-6XS7"Q@F*O9PE.T3RL1.[+$:[AFG-3K8?NCFD]:
MZY:(YXEBP@^T7,8 _B%?1_@ZW$6B1#'.*\'\(V9N+\<=Z^B-"B\G3D3T%>1B
MF>CAE9FG1117$=@4444 %%%% !1110 4444 %>(_%0_Z=^->W5X=\5O^0A^-
M=&&_B&&(^ \Q4_,:<.#48^]3STKWX'B2W&GK6]X)_P"1DA^HKGS6_P""/^1C
MA^HK#$_ S6A\:/IZV_X]H_\ =%2U%;?\>T?^Z*EKY\]T**** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** .1\:?\ 'HWTKYZU?C4)/K7T
M/XR&;1OI7SMK!_XF4@]Z]/!;'GXL@49&:*$^[2$\U[%,\F8N.*8.33LTG2M+
MZD]!.]26W^O%1]Z?;_ZX&L*_PG11W1]!_#?_ )!(^E=S7"?#4YTD?2N[KYJI
M\;/>A\(4445!04444 %%%% !1110 4444 %8GB/_ (\F^E;=8GB/_CR;Z5=/
MXD14^%GSGXH'_$U8^]9('RUJ^*&_XFS#WK(W?+7OT7[IXM7<5>:3O2*>:<PK
MK3,$!&12PC]X*3M2Q?ZP5A6>AO3W/H#X9_\ ()_"N]K@OAE_R"?PKO:^=J_&
MSVH?"@HHHK,L**** "BBB@#G_%-M]HL&7&>*^<O$-OY&KL,8YKZAU&'SH&'M
M7SQXZM/(U21L=ZZ\-*SL<N(C='+GF@#BHXGW*33P:]ZD[H\6:LQ,<T-P,TJG
M)ICGM6SV,T38S#4=E+]GO4<<8-*C_+BH7&'S7-5C='31E9GT%\/M4^V6P!;.
M!7H':O#_ (:ZAY6%SUKVN!M\*MZBO KQY9GM497B2T445@:A1110 AKF?&,F
MS3B?:NFKC_'LFS2B?:M*?Q(B;T9\]ZV=^IL?>JX'%/OV\R^)]Z83CBOH:'PG
MB5WJ+C(IBCFGCI3>AKJ1S)CE^]BFOUQ3EZYH8<UA5>AM3W._\!VY:>-L=Z]X
MMQBW0>U>3?#>Q\RV63'2O7(QB-1Z"OG\0[R/:H1M$7%+117.;A1110 4444
M%%%% !1110!Q?CN,O9G [5X!J$>R_?ZU]+^(K/[3:/QT4U\Z:_%Y6K2IZ&O1
MP3UL<6+CH8[</FI.J9J!S\^*D#?+BO=@>2PC.0:5/O4U.*<?EYJFB'N/;FO0
M_ %QMO8TSWKS82?-7:^ I_\ B<QKGN*\S%+1G=AGJCZ)C_U:_2G4R$YA3Z4^
MO"/8"BBB@#F/''_(!D^E?-MX/](?ZU])>./^0#)]*^;+T_Z2WUKU,O.'%C%&
M:"*$Z4,:]N)XT]QJCYJ?WQ3 >:4G S1/8J)K>&^/$%O_ +U?3^G_ /'A#_NB
MOF#PO\^O0'_:%?3^G_\ 'A#_ +HKY_'?$>SA/A+-%%%<!V!1110 4444 %%%
M% %#6(_-TZ1/45\\^,++[+=L<8RU?2%RF^%E]:\3^)%CY<N['>NG#2L['+B(
MW1YJHXIK<<T*WS$4A.3BO>HNZ/'GN YYH-'0XI&-;LPZBKR*3J:%.*.AJD5;
M0<.N*=$/WPIO3FEB/[T&N6OL=%'<]]^&0_XE7X5W]>?_  Q.=*_"O0*^=J_&
MSW*?PH****S+.8\<\Z!+]*^9+U#]L8D?Q5]1>+HO-T:1?:OG#6+7R;QN.]=N
M$W.3$)LHJ/EIT8W-0OW::K;6KVX(\F>Y,_3%5MOSU+OR:"O&:V6QFW8C<4T=
M:?U%0EL&L9JY<6;.F:JVG/N5L5W&A^*&FE4%S^=>8$%@*TM)N3;S#GI7%4I)
MZG73JM*Q],:+>K-:!BPK5$BGO7D>@^)=D2IN_6NTT_6!,ZC=UKRYTFF>C"HK
M'5T4Q'!0'-.R*P-A:*3(HR* %HI,BC(H 6H7G1<Y(I\CA8V.>@KSW6/$OV>[
MDCW=/>JC%R9,I)(P_'&N^5</&'KRF]N#<2EB>]:GB?53>:@QW9S6#7L86G:Q
MY>(G=B;:E7I3!3TZUZ:6APLD09--8X?%+G::@9\R5+>@D/<5VW@6T\VX4XZ&
MN)SN85ZK\-+/S/FQ7F8N5D>CAHW/7]/799QKZ"K51PKLB4>E25X[/4"D)P,T
MM5KZ7R;5W]!0!Y)\6[D!@ :\>4[GS7??$?4/M=SMSG!K@D7'->[@XV@>1BG>
M1= _=U5<_/BK"/\ +BJ\@P^:ZZBT.2"U.N\'6A?487QWKZ+LABSB'^S7CGPX
MT[[1&LN.E>SPKLA5?05X.*E>1[.&C:))1117*=(4444 %%%% !1110 4444
M%%%% !1110 4444 5;Z 3PE2,\5X%XZM/)U)^.]?0S?=->(?$:#%U(^/6NO"
M2M.QSXB-XW/,!]ZGN.14*-DD^]2J=U>_%^Z>-):BS+A :ZWP1=>5?KSWKDW.
MX8]*U?#4_E:@O/>N2O&Z-:,K,^E]*E\VU#>U7ZP_#$OF:<I]JW*\*:M)GM0=
MXH****DHH:I:"[MBA&>*^>_&ME]EU1E P,U])-RI^E>'_$6S_P!,DEQ77A9-
M2L85XW5SS/&!4L/0U7#9W4Z.3 ->W%W1Y-7<20[FQ4L,AMB''%1+RU22)N3%
M14C=!3E9GK?@36C((T+5Z[$X>-2/2OFGPGJ7V2^C3..:^@="O!=6JG/:O%Q$
M+2N>M1E=&Q1117,;A1110 4444 %%%% !1110 =*Y#QGJ0M;-L-CBNJN)!'
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
M'>N0;[HKOOA[!_Q,HV]Q7G8MZ,[L.M4?0,"A84QZ5)3(O]4OTI]>&>L%%%%
M!1110 4444 %%%% !1110 5P?Q+B#:.>.U=Y7'>/X_,TDCVJZ?Q(B>L6?.4G
MR2$5+&WRTFH1E+HCWJ.,XKWJ+T/"JQM(28X--C.VG3#)%,8'%=B)V0\'YLT[
MHVZF*#BG-]RN:LBZ>C/:_AI?!;$)GM7J2G*@UX3\/;LQO&F>M>YVYS A]17A
MXB-I'L4)7B24445SFYS/C?\ Y 4GTKYLO3_I+?6OI+QQ_P @*3Z5\V7O-RWU
MKTL#N<>*V(P>*!Q24K5[!Y$MQ!US2/ZT[^&D/W:F6PD:/A?G7[?_ 'J^H].
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
M_$95OA/+%&XFCOBEA/+4A.&->Y3GH>3*%V2'E<5O^">/$,(]ZYY6YK>\&/\
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
MQ:[&VWO656948VD>\VW_ ![1_P"Z*EJ.#B!!["I*\\[@HHHH **** "BBB@
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
M-L.1$B#"*/:G445F6%%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 54N+-9FR15NBA.P-7,QM+C/8
M5&='B/85KT57,Q<J,C^QHL?=%']C1>@K7HHYF+E1EKI4:]A4J:>BD'%7Z*.9
MCY4(J[5 I:**D84444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1VHHH IS62RG)%5SI49[5J457,Q
M61D_V1%Z"E&D1#L*U:*.9ARHS4TR-3G%7XT")@4^BE<$D@HHHI#"BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH ***1CM4F@!:*I&_C#$9Z4?VA'_ 'J +M%4Q?QD_>I?ML?K0!;HJF;^,=Z3
M^T(_[U %VBJ\5TDIP#5B@ HHHH **** "BBB@ HHHH **** "BBB@ HHJ*:9
M85RQH EHJC%J,4DFT-S5X=* "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHI"<#- "T51;48EEV;N:MQR"1<B@!]%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 444=J "BJKWB(V":GBD$BY% #Z***
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***9(XC7)H ?1444
MHE&0:EH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HIDCA%R:I#4XC/Y>X9H T**0'(S2T
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !5:^E$5K(Q/059KEO%>H?9;9USU% '*7/B$K>2+OZ'UI$\0$G[_P"M><7^
MJL+V0YZFEM]49CUH ])3Q!^]P7_6IWU\;AA_UKRJYUIH&SNJ.#Q&99!\WZT
M>ISZ_M_C_6H?^$A/]_\ 6O/9]68XY-,_M)L=: /9/#FK?:KH+NS7<=J\6^']
M\9M4"D]Z]H'04 +1110 4444 %%%% !1110 4444 %%%% !7/>*KPV=B7!Q7
M0UQ7Q#?9I)/M0!S6@:^UQK"Q[LY->L1G,:GVKP3P8"^MHWO7O47^J7Z4 /HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *CG.V!SZ
MU)4-U_QZR_[IH \IO/$+)KLD._H:]'T*?[18J^:\*U&4_P#"6S#/\5>U^%#G
M2U^E &_1110 4444 %%%% !1110 4444 %%%% !1110 4444 %-D.(V/M3JC
MG.('/^R: ."U;6?)O&3=T-=7H-Q]IL0^<UX_XEORNL2+G^*O4/!4GF:.I]J
M.FHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K,UN?[/8L^
M<8K3KF?&\_V?097ST% $OAN^%U"QW9KH:\I^'NL><C+N[UZI&<H#ZB@!U%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4UG"GDTZN<U[4_L=Q&N<9- '1 Y&:
M6JUC+YUJC^HJS0 4444 %%%% !1110 4444 %%%% !1110 4444 9NLS>1:%
M@>U>5V_B1F\5I;[^K5Z7XD_X\&^E>!VLA_X6!$,_Q4 ?2<!W0(?4"I*AM?\
MCUB_W14U !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 5QGC"Q>Z0A0>E=G5:YM$G^\* /GR\\*S/,QV'K3K;PK,I^X:]
MQ;0H&.=H_*A=#@'\(_*@#YW\2^'IK:T:3:1BN5T*REGN0O)YKZ'\?Z/#'H$C
M!1G!KRCP78+)J*@C^*@"^/"\SHAVGI4G_"+3;?N&O:K;0X#;1G:.GI4W]AP?
MW10!YQX&T.2RU0.RD<UZ\.@K/M=,BMI-RKBM&@ HHHH **** "BBB@ HHHH
M**** "BBB@ KB/B.,Z0?I7;UQGQ"YTD_2@#S;P0<:N@]Z]YB_P!4OTKP/P=G
M^W4QZU[Y%_JE^E #Z*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "H;O_CTE_W34U0W7_'K+_NF@#YXU-"/%LQ_VJ]M\)?\@I?I7C.J
M@?\ "42_[U>S>$O^04OTH Z"BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH *CG&8''J*DI",@B@#Q?7] DGU>20*>37I'A&U-KI2H1CBKTNE12R%R
MO-7;>!8(]JCB@":BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "N-^))(\,38]#795QOQ(&?#$WT- 'F?PO=BYR?XJ]Z@_U"?2O"/A@N&/\
MO5[O!_J5^E $E%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5YA\1+TV^HVZ@
MXRPKT^O%_BS*4U>T _OB@#U3P^_F:/ WJM:E8OA4[M MC_LBMJ@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH QO$2[K%OI7@-O$1\0HC_M5]!:[C[$WT
MKP>+'_"?Q_[U 'T/:_\ 'K%_NBIJBM?^/6/_ '14M !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '(?$3_
M )%R7Z&O)_ B#[>I_P!JO6?B$,^'I/I7E'@<[=04?[5 'T!:_P#'M'_NU+4-
MK_Q[1_2IJ "BBB@!"<"F^8N>M1W,HCA8YZ5A1ZF#/MW=Z .DHJ**16C!S4M
M!1110 444A(%  6"CFFB12>#5'5+H00[LUFV&IB68#=0!T=%-#J0.:=F@ KB
MOB(<:2?I7:UQ?Q#&=)/TH \Z\%KG6$/O7NT7^J7Z5X-X-?&MHOO7O$; 1+D]
MJ ',X7K0KANAK(U6^$!ZU'I.H"XDQNH W:*0$'O2T %%%)D"@!:*3(-!8 =:
M &^8-V,T^N>;4@-3\K=WK>5U*@YH ?12 @]*6@ HHHH ***3</6@!&8+UI0<
MC-96JWHMPO-7+*=9;=6SUH M44F0>]+0 5#=?\>LG^Z:FJ&Z_P"/67_=- 'S
M[JC?\55+_O5[1X2_Y!2_2O%-6./%4O\ O5[5X0.=)7Z4 =#1110 4A('6@D"
MJ.HW(AASF@"X)%)QFGUS5GJ@DN0NZNC5U*CF@!U%&:* "BBB@ HHJ*:0+$QS
MT% #O-7.,TX'(KE9=7"W!7=WKH;*82VZMGK0!:HHI,B@!:*** "BDR*6@ HH
MHH *0L%'-!('6J&IW0@@W9H NB13T-/KF[#4Q+,%W5T2L"!S0 ZBBB@ HHI,
M@4 *3@4T,&Z5#=3+' S9Z51TV]$SL,]#0!K44FX>M+0 4444 %%%% !7(?$4
M9\-3?0UU]<?\1CCPS-]#0!YQ\-!AS_O5[G!_J5^E>%_#,Y<_[U>Z0?ZE?I0!
M)1129&: %II<+U-*2!UK#U34! ^-U &VKANE.K&TB^%QGFM@,#T- "T444 %
M%%% !2$@=:-P'>J.I7(AASF@"\"".*6J.G7*S0;LU=W ]Z %HHHH ***0D"@
M!"X7J:%8-TK%U._$$F,U-I=Z)_XJ -:BDW+ZTM !1110 44A(%&0: %HHSBD
MWKZT +12 YHR!0 M%)D&@D"@ )P,FFB12>M5[ZX6*W+9K#MM5#SA=W>@#IZ*
M9&X9%.>M/H **** "BBD) ZT !8+UIHD4G -4-4NQ!'G-9VG:F)KC;NH Z.B
MFAUQUIV: "BBB@ HI"<4H.: "BDS2;U]: '44@(-+0 4A.!FC</6H+J98X&;
M/2@"97#=*=6/I=\)Y&&[H:U]P]: %HHHH 0G R:\0^+DBMK%I@_QBO9K^80V
MCOGH*^>/B'J7VK6H><[7% 'NGA)@?#]L,_PBMVN-\#WHDTF!,]%KL-Z^M #J
M*0$'I2T %%%)N'K0 M%-WKZTN]?6@!:*0'-+0 4444 %!.!14%S*J0LV>@H
MD\U<XS3P<BN4_M<?:=N[O726TH>%6SUH S?$3;;%OI7@5O(3\08O]ZO>_$?.
MGM]*\&M(\^/HC_M4 ?1UK_QZQ?[HJ:H;7_CUB_W14U !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% ')?$'
M_D7I/I7DG@DYU)?]ZO6?B'_R+LGT->2>!O\ D(K_ +U 'T):_P#'M'_NU-4-
MK_Q[1_2IJ "JM_<"WMRY.,5:[5Q_B[64M[)TW8- &5K'BQ(T9/,_6N5B\3A;
MC=O[^M<9J5Y<7ER2C$C-0+8WA&X9H ]BL_&2,$3S/;K7>:?<"YM%D!SFOE]9
M[NSN(RY( 85[MX/UV.;3(8RPW8]: .UHID;AUR*?0 5CZUJ0L(]Q.*UI'V(6
M/:O+OB!K@$12-N10!'KGBU9(B@D_6L73_%(AF#%_UKA&:[O93@D@TKZ;>JN1
MF@#VBS\9),RKYGZUV&EWPNTR#FOFFSN+NSN%\QB,&O8O!.N+)&JLW.* /1ZX
MSXA'&DGZ5V,;!T##O7&?$,$Z2?I0!YQX.3.MHWO7J6KZ\NG[5+8XKRCPO=I:
MZDI8]#5GQKJ[W-XJ0MU]* -G6/%*SDX?]:KZ)XJ6&<Y?OZUPZ65Y*I)SS5&:
M&[LWW'(H ^AM%UY;^4*&SFNGKP?P+K;)?*LC=Z]PM+@7$(=30!8K)U7419C)
M.*UJX/QU.\4;%3VH VM)UI;V5E#9Q536/$2V18%\8K@/!^N&*\F$C>M97BS5
M9+JYD6)ORH TW\5#^U_,\SC/K731^-4*@>9V]:\;2QO7'F#.:23[;;C+$\4
M?1WA_6%U)<ALUOUXU\-=<V?)*W)KV*&021AQWH ?1110!#=2^5 S^E<9J'BM
M+:0J7Q@^M:WB754M+.12<'%>#ZWJ4]U=/Y;'K0!W6M^+UF"XD[^M7].\9HEJ
MJF3]:\D:UO9USS37%[;J 2>* /HG1]=6^VX;.:Z4<@&O"_!>MM%-&DC<U[58
MW2W,*LISQ0!;J&Z_X]9?]TU-4-U_QZR_[IH ^>M6&?%4O^]7M/A 8TE?I7B^
MJ?\ (UR_[W]:]I\)?\@I?I0!T-%%07%PL"DGM0!0UC4!8Q;B<5P6L^+D9"@D
M_6G>.=?5H2D;<_6O)Y#=W<Y()(- '<67B817(<O^M=A8^,$F*KYGZUXR]C=I
M%D9S3K"[N;2=?,8\&@#Z4TV]%T@(.:T:\\\%:VLT:J6R<5Z"C;T##O0 ZBBH
MYI!&FXT 1WDP@MV<GH*X/4_%Z1;T\SVZUJ^(]>CCL)4##=CUKPG4[JYN[Q]C
M$@M0!UT_B/-SOW]_6NKTGQ>GDHGF?K7DOV"[:,-S26TEW:S#<2 #0!],Z7=B
M[MA(#FLO4-:6VU)("V,G%87A'7D7351V&['K7*>(]8+^+[=$;@M0![/"^^)6
M]13F.$)]!5;3SNL(3ZJ*FG.('/\ LF@#G+K7EAN3'NZ&MO3[D7, <'->-Z_J
M4D>M2*&_BKT[PA,9M)5B>U '1444R1PD98]J ,G7-3&GQ;BV*X#6?%Z2QE!)
M^M.^(6N PF.-N1QUKR;%Y=3$@D@T >@:=XG$4X)?]:[G2O%"74B('SGWKPMK
M.\B7=S6MX=U2:UOXQ(QP#0!](Q-OC5O44^LC0]22]M4VG/%:] !6!JNL+9DY
M;&*VII!&A)KR#QMK16X=$;F@#8U#QDGE,GF?K63IWC!;>4YDZGUKSG_3+QR5
M)(S4-W97T1##=0![KI_BM+E@ ^<^]=E:3>= '!ZU\V:'J4]M.@D8]:][\-7P
MN-.CYYQ0!OT444 %%%% !7&_$C_D6)OH:[*N.^)'/AF;Z&@#S;X8?>/^]7NT
M'^I7Z5X3\,1AC_O5[M!_J5^E #G.U&/H*P+?65DU-K?=T-;ER<6TA]%->-6F
MM&'QG,C-P&H ]'UK6EL$8EL8KSC5/%BW,QQ)W]:;XWUHSHZ1-R17G=C:7MPQ
M8Y/- 'IND^+%M>LG7WKN?#OB!=3EVA\UX%>V5["NY=W%=3\.=9>UORL[=^]
M'OU%4K.]2Y0,IZU=H *9(VV,GTI]9.LZ@EG;/N..* ,?5?$:V;$%\8KE=6\8
MI+#M$GZUR'BC69+BX=8F[USBVU].N?FP: /4=+\9I%"%,GZUU&E>)5O'4!\Y
MKP"2VOK<Y^; KH?"^M26UW&LK=Z /HV-MT8/J*=65HNHI>VR;3GBM6@ [5SN
MKZRMD3EL8K9O+E;:(LQ[5XYXSUTR3ND;?K0!9UCQ0LUQP_?UI^F^+5M>LF/Q
MKS5$NKF7=DGFDU"WO(]NW- 'MUCXO2X< 2=3ZUVEE/\ :+=7!SFOF32]0N+2
M9#(QZU[OX2UE+JQC3=DXH ZVBBB@#!UK5A8.H+8S4^EZB+L#!S7 _$R]>VNH
M@IQDU?\ !^H$1*SGM0!VNKWHLK8R$XKCAXR3[3L\SOZU#XV\0(;%HT8;L>M>
M06EQ=SZJ,,<9H ^E-(OA>P[P<\4S5M1%F.3BLKP4LBV \SKBLSQ[<-"GRF@#
M=TC65O9BH;.*DU?5A91EBV,5YQX(U9OM\@=NE2^--;\R-XXVY^M %S5/&2/"
MR"3]:P+3Q($G#%^_K7!,+RXDX)Q4S6MU%"6YH ]RT3Q.EWM4/FNSA?S(@WK7
MS=X5U:6UNU$K=Z]ZT'4TN[5 #DXH VZ*** "L/6]5%AU;%;$T@BB+GM7DGQ!
MUS+[(V_6@"WK?BE9(\!_UK%T_P 3BWN-Y?\ 6N++7-V>"34%U97B1;ES0![)
M9^-$FD"^9^M=KI=X+N'<#GBOE_3KJ[M;E6D8X%>W>"-=26V5&;G'K0!Z%134
M;<H/K3J ,S6K\6%MYA.*71KX7UKY@.:YKXDW#6^BEE.*K^ M4!T(.[4 =7J=
M^+122<8KC[CQHD4^SS.^.M5?%^OJ$=5;FO'[JZN[G4%*,<;J /I'1=6%^JD-
MG-:.H7(MH=Y.*XCP$DPAC,F>E;_B^<P:86![4 9=YXK2 GY_UK$OO&R-;LOF
M?K7G>IW]Q<3,J,>M9$EIJ#G^+F@#TK0_%JQS,3)U/K7;:;XC6Z< /FOGU(+R
MU.3D5U/AK69(;A1(W>@#Z"@D\R,-4M9&AWBW%DA!ZBM>@#C?&&LBSMY(]V,B
MOG'Q)J'GZJK;L_/7LGQ*BG>9BF<5X)K$4BW@W==U 'L7A3Q0ME9Q@OC ]:ZL
M>.(^/WGZUXA8Q73VR"//2KRVNH<?>ZT ?2VA:@-0LQ*#FM6N.^'J2IHBB7KB
MNQH 9,^R)F]!7&:AXI2VF9=_3WK;U_5$L;60,<$BO!];U.:ZOY/+8]: /3#X
MVC!_U@_.I8?&2.P'F?K7C)BOFYRU.CEN[=@6)XH ^D=&U 7T.X'-:M>8^ ==
M4VXC=OF/O7ID;;T##O0 ZBBHII1$F30!!J5R+6U:0G&*X#4O&*!'3S/UK2\7
M:]&NFR(K#=CUKPNYGN[JY;:QP30!VR^(LW.[?W]:[#3?%R,B)YGZUX^EE=!-
MW-+:W5S;7*[F. : /H'4K@76C>8#G(KQ.T<#Q[$/]JO2+'5DG\/JA;YMM>86
MI)^(,7^]0!])VO\ QZQ?[HJ6H;7_ (]8O]T5-0 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!R'Q#_ .1=
ME^AKR3P-_P A%?\ >KUGXC''AN7Z&O)_ (S?*?\ :H ^@[7_ (]H_I4U16W_
M ![1_2I: (IY5BC))QQ7@GQ UMSJ,D*,2,]J]>\67_V'3V?..*\!N2=8\0XZ
MY- &QX3TEK^,.ZYSZUZ+:>%(VAR4'2G^$]"%K:K\O:NV@@"1XQ0!X=XUT'[&
MF^-.G/%9?@K7I(M3%N[$ '%>O^*-%%[;2?+G@UX3-"='UYSTPU 'TOI4PGM%
M8'-7ZYCP3=_:M&1\YXKIZ ,[6+I;>PE);!"U\[>(=2EU#4Y(U)(#5ZK\0M9^
MQ1-&&QN&*\U\+:9_:^INY&<MF@#?\(^'A<["Z=?6N[;PA"5^X/RJ_H6CBR"_
M+C%=+@8Z4 >"^--"^P.S1IT]*Q_!NJ30WRQDD?-BO8?%FC"]A=MN:\MMM(-C
MJR87'ST >\Z:_F6$3'N*YOQZN[2C]*Z'2.-,A_W:P/'7_(*;Z4 ?/LVHM::@
M0IQ@UJ:89=6U6'<"037,W>9M?\OU->O>"O#N3',5Z8- '66?A2+[+&=@Y6N;
M\7>&E@MRRH.E>KPH$A5<=!63K]@+RW88SQ0!\W6MU)INJ'J,&OH3P9?B[TA&
M+9.*\1\8:7]@N&D QS7H?PVU$MIT<>?2@#U*N \?#]PY]J[Y>5%>?_$)MMK(
M?:@#Q*+5&L[Z4*3R:UM$CEU34,N"037((QGU=D_VZ]O\&>&PMO'/MZT :^G>
M$HGM02@Z>E8/B?PPL$#E$' KU>TA$407%9FL:<+N)EQG- 'SMIE]+I6KQQ\J
M"]?1^@W:W&EPMG)*UX-XUTG^S-4CD Q\V:],\ :J;JWCBW9P* /0J9(XC7).
M*?6+XEO/L>F/)G&!0!Y9\2-<9+MHHVZGM7*^&;!]1FW.I.3WJOJ]X=9UQ5SG
M+5ZEX2\."WA1]G49H ET_P )QO",H.GI6/KWAE8D;:@KU.UMQ$F,51U/3A<(
MW% 'SC]HETW6 O( ->[>!M4%W8#<V3BO+?&FA_9)WG"XQ6C\.]:*E82W?% '
MN@Y%0W7_ !ZR_P"Z:= VZ%&]13;K_CUE_P!TT ?/.K\>*IO][^M>U>#S_P 2
ME?I7C6KIGQ1+_O5[-X0&-)7Z4 =#7,>*K\6EI(<X.*Z>O+?B9J/V<>6#UXH
M\LU+59M0U)HP21NQ7>^&/#HN(49TZUS'A+1/[2U N5SELU[=HVE"TA5=N,4
M<Y+X6CZ;!7GOB_1S8,S(O3TKWIX 3TKC_%>A"[MY&V]J /*O ^LR0W@1V(^;
M%?0FF3B:SC8'.17S1/$=&U90./GKW3P=J/VJSB&<\4 =A67KL_V?3W?.,"M2
MN8\;7 @T.1L]J /%_$VORRWIA5B03BKGAC1C>D.Z=>>:P["T.JZH&QGYJ]H\
M.Z"+2!#MQQ0!2A\+1F'[@Z5R?B/0/LRLR)TKV-8 J8Q6)K&CB[C8;<T >'6>
MLS6-P(B2 *A_M WGBVU;.?FJ_P"+M).G2O(%QBN3\-3FX\2VY)Z/0!]8Z9_R
M#H/]P5-<_P#'M)_NFH=,_P"0=!_N"IKC_CVD_P!TT ?/OBAR->E_WJ]<\"'.
MB)]*\D\4)G79?]ZO7/ @QHB?2@#JJSM9NUMM/F);!"UHUYQ\1=:^PQ-$&QN&
M* /*-9U.74=8DB!) ?%=OX=\-K-;([)R:Y3PGIG]J:LTA&<MFO<=)TP6UNJ[
M>E '+WWA:,6A(0=/2O+-?M9--O-R*1@U]'7%L'@*XKS/QGX=#VTLNWI0 _X7
M:R;I"LC=..:]6!W#(KYV\"WQTW4#%G&6Q7T#82>;9QOZB@"GKD_D6C-GM7SM
MXFOWN=>,8)()KWCQE+Y6F,?:O"K:T^W^)EXSEJ .]\&>&ENK(.Z#..XKHK[P
M?$;=CL' ]*W_  WIXLK)5QCBMF9 \3+CJ* /F[7=.DL;WY%/#=J]/\"7$C6\
M:MGI4NL>%Q=SEMG?TK:T#1_L*J,8Q0!TPZ4M%% !1110 5R'Q%_Y%J;Z&NOK
MC_B,<>&9OH: /./AH,.?]ZO<X/\ 4K]*\+^&1RY_WJ]T@_U*_2@!EY_QYR_[
MIKYAUS4FM/&4Y!Q\U?3U[_QY3?[AKY)\6N?^$RG'^U_6@#H;::;5;]5()4UZ
MCX?\*1FW#%!T]*YWP+X>^T6\=P5S7K^G6PMX0N.U '(ZGX2B-G(VP9"^E>+:
MD\FB:JVT%1OKZ@N(Q) ZXZBO"OB3H?D-YP7J<T =WX&U7[9919;)(KOZ\1^&
ME^?M$<&>E>VCH*  D*,FO+OB3K)M5V(W7TKTC4)?)M'?T%> >.]1-[JB1 YR
MV* ,/2DFU*_^8$@M7L.C^$XY+%&*#)'I6/X4\*@6\4^SKSTKU*P@$%LJ8Z4
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
MJ$]167X@G2>Q?O\ +0!Y'X(S'XP,?HU?0B_='TKY[\)''CQ@/[U?0B_='TH
M@O?^/5_I7@GCL@ZW!_UT%>]7_P#QZ/\ 2O ?')QKD'_704 >V^%E T&V_P!T
M5M5C>%O^0!;?[HK9H *Y3QE?>1I,ZY_AKJZ\S^(UT4MI8P>HH \T\+P'4M9D
M8\X>O?\ 1[806<8QC KQKX5V?FWTK,,_,:]TC39"H':@"P,8J*= T9&*D3I2
ML,B@#Q'XCZ=^_:4+TJW\'[@R22(3T)K>^(%D)+"9\=!7&?"&Y^SZA.K'^(T
M>\,<*3Z"O)OB7JF^R> -7JC/NM68?W:^?O'=TTNIR19[T :/P[TWS)(YBO>O
M<88PL2@#M7G/PWL@NF(Q'->E#[HH ,"HYHU:)ACM4M(>AH \&^)FDD++*%]:
M\V\ QE/%T(/]ZO?OB-8+)I;MCG!KP_PC%Y7C2%?]J@#ZOM/^/2+_ '14U0VO
M_'K%_NBIJ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** ..^(QQX<E^E>4> >;Y<_WJ]9^(8W>'91[5Y/X&
M^34%'^U0!]!6W_'M'_NTZ4XB8^U,M?\ CVC^E.G_ -0_TH \1^(]Z6WQD\9K
M8^'3QIIZ,2*Y+XD2XN)/K47A76S;6"C=B@#WW[=%@?,*7[=%_>%>4CQ0VW[_
M .M*/%+$'Y_UH ]6^WQ$8W"O/OB4T4FE$@CI6/%XJ8N1O_6L#QAKQN;#;NS0
M!-\/Y\:C&@/>O9M??9H4C?[->#?#N8MK$?UKW7Q)_P B[+_N4 ?/TI-WX@7/
M.)*^AO#T BTJ#C^&OG_3(O,UW/\ TTKZ)T<8TR$?[- %^BBB@ HHHH *XWX@
M?\@D_2NRKB_B&<:0?I0!Y?X/A!\1(WO7T#%_JE^E>!>##G74^M>^Q?ZI?I0
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
M]>YW!Q&:\(^(<H.MJOO0!U_PN&(3]*](NO\ CUE_W37GOPTCV6^?45Z%=_\
M'I+_ +IH \ U/YO%,H_VJ]F\*#&EK]*\6U)MOBR7_>KVGPHV[2U/M0 OB_\
MY%ZX_P!TUXEX*XUB3_KH:]O\6#.@7'^Z:\,\+.(M:<>LAH ^A=/_ ././Z5:
MJIIAS81GVJUGF@!:C8?-4E% &#XE7.ES_P"[7A?AJ3;XGF'^W7N7BB0)IDX_
MV37@_AS)\3S'_II0!]#Z6<Z:I]J\"\8?+XU)_P!JO?-(_P"08OTKP;QTGE^*
M6D]Z /7?!#[]-'^[75J,5POP[NA+IHY[5W@H 6BBB@"AJO\ QYM]*\"UM<^-
M[<_]-*]VU^<0Z>[$]J^?[Z]6X\:08/\ '0!]%:7_ ,@V#_<%3W'_ ![R?[IJ
M'2_^0;!_N"IKC_CWD_W30!X#XI&=;D_WJ]8\"#&B)]*\H\3_ /(<D_WJ]9\"
M_P#(%7Z4 7_%'_("N/\ =KY6U8G^UI/]^OJKQ.,Z)./]FOE_4K4OK##'5Z -
M&V9A;K]*E0LK9K<L] D>TC8*>15D^'9-GW30!S3%BV:>)6"]:Z(>'9-GW343
M>'9<?=- '$7MNUU>QG&>:]N^'5L88H^.U<1;>&G-PI*'@^E>K>%;'[+&HQCB
M@#K",BN,\5:/]MA<!<YKM*BE@20?, : /FO5O"[V\Y.S'-9\9;37&>*]R\0:
M+')(2J"O,?$GAV3)**10!K^%?$H655+]Z]BTZ<7%HLF>HKY?M3-IETNXD?-7
MOG@W5UNM.B3=DXH ["BBB@ HHHH *X[XD?\ (LS?0UV-<=\2/^19F^AH \V^
M&'WC_O5[M!_J5^E>$_##[Q_WJ]V@_P!2OTH 9>?\>DO^Z:\0T'_DHLW^]_6O
M;[S_ (\Y?]TUX?H)_P"+C3?[W]: /=E^Z/I2TB_='TI: "H+O_CTE_W34]07
MG_'I+_NF@#P?3IA%\09C_MU[K92^;;AO:OGP,5\>38_OU[QH;%K%2?2@#R[X
ME\W^/>M'X5)M#51^)0_T[=[U?^%<@<.!0!ZI1110 4444 %<!\21FQ_"N_K@
M_B*,V/X4 >?^ .-?'UKWD<QCZ5X!X%F \1[?>O?83NC'TH <@P*?110 5Q/Q
M&&=%;Z5VU<1\17QH[?2@#R;P8N/$,?\ O5]&0?ZA/]T5\\>#.=?C/^U7T/!_
MJ$^@H \8^,0S<QCWJQ\+8=DJG%,^+JYNXOJ*TOAM%M"'% 'JE%%% !7GOQ"&
M8C]*]"KS_P"(!Q"WTH Y;X:#_B<R?[U>TUXC\-I0-;D_WJ]L5LB@!U,8?-3Z
M:3S0 UQ\M>4?%D9LUKUEONUY+\6' M5H SOAM_KXZ]"\>_\ (MR_2N ^&Z_O
MHS7H/CI=WAR4>U 'B_@O_D*#_?KZ)LO^/./_ ':^=/"3>5JR@_WZ^B=/;=9Q
M?[M $[C-.7@4M% !6)XG_P"0+/\ [IK;K!\52;=%G_W: /!M*_Y#K?\ 72OH
M?1?^07#]*^>-#_>ZZV/^>E?1&CC&FQ#VH XWXK?\B^:Y+X:Q91&QWKK?BKSH
M!KFOAH/]'3ZT >R1_P"K7Z4ZFI]Q?I3J &N<(3Z"O)OB'K>+=X0W2O5K@XMY
M#_LFOG7QI</=ZW+ "3STH Q=)TU]0N0V,Y-=W!X5;R0-G;TJ;P/H>U$9UKU.
M+3X@JC:.E 'D9\*,F?D_2L76/#3K$3M[5[M/IT1'""L'6M*C:U?"#[IH \@^
M'-N;?Q5L(Z&OI%?NCZ5X%X3B$/CAD Z-7OJ_='TH KWW_'H_TKP/QR,:Y!_U
MT%>^7W_'J_TKP3QV?^)Y!_UT% 'M?A?_ ) -M_NBMFL;PM_R ;;_ '16S0 5
MX7\7!F[->Z5XE\5H]]T: /+] )61_K6U,6ZU'X7TI[F1\ ]:ZF3P[(1]TT <
M_P"<WD@9J!96#]:Z/_A'9?[IJ,^')=_W30!S5_NFB8>HK<^'6B-)=[]O\6:N
M_P#".2,.5-=YX"T46A)9* .VCC\K263T0U\Z7J[?'LK?[5?2EP +20#^Z:^<
M=67;XTE;_:H ]W\+-NTU?I6]7.>$&W:6OTKHZ "BBB@#)U[_ (\F^E?/\?\
MR42+_?KWWQ$^RP8^U?/]O)O^(<1_VJ /I.U_X](O]T5-4-K_ ,>D7^Z*FH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH Y#XA_\B[+]*\E\#$_VBO^]7KGQ!&?#TGTKR3P2,:DO^]0!]!6
MO_'M']*?-S"X]J9:_P#'M']*E894B@#P'XF6S!W;'>NJ^'%A#/H2;L9Q4/Q5
ML FG&7%5?AGJ.VWC@S^% 'I']@PD?='Y4G]@0_W1^5;J\H#[4M &%_8,7]T4
M?V##_='Y5NTA('6@#.M=,CMV! %0>)1G1)A_LUL @]*S=>3?I4J^U 'S@&,7
MB)0>\E?2&A'.CVY_V:^<]7B^S>(XN,9DKZ'\.2J^C6^#_"* ->BBB@ HHII<
M*>30 ZN*^(G_ ""3]*[4<BN,^(0SI)^E 'FW@L'^VD^M>\Q?ZI?I7A?@U?\
MB<)]:]TC_P!4OTH ?1110!Q'Q&.-'/TKRCP6<^(X_K7K'Q%&=(/TKR3P8<>)
MD'^U0!]'0_ZE/I7G_P 0A^X?Z5Z!#_J4^E<%X_&8'^E ''?"O/\ ;4O^]7N-
M>)?"Y<:W+_O5[;0 4444 </XZ)^R2?2N&^%W_(?F_P!ZN^\;IFRE/^S7G_PN
M/_%0SC_:H ]Q;[A^E>"?$*$KJKOCO7OA^Z?I7C7Q&M<&23% &Q\,+@?V?@GM
M7IHY KQ;X:7NR,)GO7L\1W1*?:@!]%%% %6\;;"2:^?/'<OF^*8T'=J]YUN4
M163-GM7S]K+?;/&$/?YZ /7O 5L8;-"1U6NQNO\ CUE_W365X>LQ;V$)QC*B
MM6Z_X]9?]TT ?.^M$CQ3+C^]7M7@PDZ.N?2O&-67=XJE'^U7M/A!=NDJ/:@"
MSXH&[0YQ_LU\_P"FO]GU[!XS)7T+KZ;])F7VKYWU$&TU].V9* /HO1G#Z7"?
M]FK@^_6+X9N!+I4'/\-;H'.: '4444 <=XUN/*LI5SU6O'_"41E\02D?WZ]&
M^(]V(HF7/45Q?PUM_M.M2,1GYJ /<-,7;IZ@^E>)_$>S9+^28"O=H(_+A"^U
M><_$C2@VF2S[><&@#,^%U^/L>PGFO6XSE :^=OA_J1MKM8BV/FQ7T%9SJ]M&
M0>HH M4A.!1N%133*JGF@#D_'-\(='EP><&OG73KMKCQC 2?^6G]:]:^(>J9
MMY8@WK7C?AM2WBJ!C_?_ *T ?76E?\@RW_W!4]Q_Q[R?[IJ#2_\ D&P?[@J>
MX_X]Y/\ =- '@'BK_D-R?[U>L^ _^0(GTKR?Q0,ZY)_O5ZSX%&-%7Z4 :OB%
M=VD3#VKYWN[8+KHW#K)7T?JR;]/D7U%?/WB=/LFMQGI\] 'L&AZ1#+I<)P/N
MUI_V%%C[HJAX/NQ-IT*YS\M=70!B?V%%C&T4W^P8O[HK=HH PTT*)6SM'Y5I
MVUJL X%3E@IYIPY% !1110!5N+59CR*R-0T**:%B5'3TKH::Z[D(H ^<_'VF
MFQ?<BXP:W_AEJ3R31Q,:V?B1I0>W+;:Y3X<'R]>$?H: /H =!2TB_='TI: "
MBBB@ KCOB1_R+,WT-=C7'?$C_D69OH: /-OAA]X_[U>[0?ZE?I7A/PP^\?\
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
MQZR_[IH ^?-3_P"1KE_WOZU[5X3_ .04OTKQ/53CQ7+_ +W]:]J\(G.DK]*
M->_B\VT=/45X!X_LC8ZK')C'S9KZ((R,&O)?BAHYN3YJ+]WF@#3^'^K"YMXX
MMW05Z.#Q7SWX!UC[!J!B=L8..:]NL-36YC4@YS0!KU%.X2(G/2HVN .]8FMZ
MPMM:OE@.* /+_B=J>;E8P>IQ5SX5VNVZ\S'6N,\47#:SJJ;3G#=J]7^'^F&U
MMXV*XXH ]$KF_&=M]IT21,=17250U>'S[-DQGB@#YC\TZ-K [8:O8?#'B<7<
M*+OZ#UKSSQMX<D%VTR*0 <\51\,:B^GOM=B,'O0!]"+? Q9SVKFM;\0"W5AN
MKFH_%Z>5M\P=/6N9UO56O"VUNM %77+\ZG<,N<YKG](LOLWBBW&/XJZ/2-'D
MF83,"15::,0>+K9<8^:@#Z,TS_D'0?[@J:X_X]Y/]TU#IG_(.@_W!4UQ_P >
MTG^Z: / ?%)QK<G^]7K/@0YT1?I7D?BHYUR0?[5>M^ _^0(GTH Z6Y3S(&7U
MKPCXEVOV:_1\=&S7OA&17E?Q.T@W2F15Z"@!OPTU3[1MBW=.*]7KYT\ :D=*
MU1D=L8;'->ZZ;J:WB @YS0!K445C:KJRV(.6 Q0!5UO519W,:;NIK;LY/-M4
M?U%>1:[KPU#580CYPW:O5=%).EPD_P!V@#0I,CUK/U:^%C;^83BN<@\6Q23[
M-XH [2BJEC="YCW YJS(VU"?2@#A/B*0+(_2O.OA_P#\C/\ C75_$?5E\GR]
MP]*P?AW9EM66?'!- 'NB_='TI:0?=%+0 4444 %<=\2/^19F^AKL:XWXD?\
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
M7K_PXTD16 9UYQ7G_AK1S>WR,R9R?2O<]#T\6-JJ@8XH U5&% J*[_X]9?\
M=-35%<\VTG^Z: /GC5P?^$JE_P!ZO:O!_P#R"%^E>0ZI:LWB>4[3]ZO8?"B%
M-+4'TH WZPO$FG)=Z=,2,G::W:BN8_-MW3U% 'RO.D^EZ[*P!"[Z]5\+:\I@
M0.W./6LGQ[X>%J6G5.3STKA;#5IK2;9D@"@#W:77(L_>KA/&.MEH76-NH]:Y
M9O$<Q?[QJE-=RZA<*AR030!9\(64NH:AND&?FKZ%T:R6VLX\#M7GO@/01&H<
MI[UZI"FR)5]* 'TR1 ZX-/HH Y7Q'H<4]A*VWG'I7A&K:7<6T\GEJ>M?35U%
MYT#(>]<=>^$X[AV)0<F@#YZ5=0$N,-UKH=,T^YG*[U->I?\ ""Q[L^6/RK2M
M?":0X^0<4 5-)TA(=$WLO.*\PU88\;6X']^O<;^$6>CLO3 KPZ\_?>,H&_V_
MZT ?0VE_\@V#_<%3W/\ Q[2?[IJ'3/\ D'0?[@J>X_X]Y/\ =- 'SYXF4G7Y
M/]ZO7O HQHJ_2O,O$5HS:U(V#]ZO4?!B%-(4'TH Z6L7Q!IR7=A+D9.VMJHY
MT\R%D]10!\O:K!-I>L2,H(&^O3O!FO#R8Q(WZU2\>^'Q&&E5.3STKSZVU6;3
MY=HR,4 ?1G]NV^/OBO.?'>NY#B)OUKBQXMG/&XUGW5_-J5P%;)S0!/X9^T7^
MIJSY(#U]':0I3385/9:\M\">'A\LA3WZ5ZW;Q^5"J>@H Y/Q^TJZ0QCZXKPN
MTU6Z@U4"0D#/K7TCK=@+^T,9&>*\%\6Z,=/O7=$QCVH ]4\*Z]$UF-[\XK;O
M-=@%L^'&<5\_Z5K]Q;1[<L,5:NO%<[#;N/- "^.=0>\N]J'(W5Z+\.M/V64,
MI')%>86<#ZI=*S*3\U>\^%+ 6VF1#&,"@#I>U%%% !1110 5QWQ(&?#$WT-=
MC7)_$",R>'95 [4 >8_"^%BS''\5>[0<0K]*\K^%NG;;9V*]Z]7484"@"&\_
MX\YO]PUX-X?#?\++F_W_ .M>]78S:2C_ &37C&B6;+\0)9-O&Z@#VQ?NCZ4M
M(OW1]*6@ J"\_P"/.7_=-3U%<C-M(/\ 9- 'SK%"[_$";C^.O?-%0I9*#Z5Y
M1I^F%_'$KE?XJ]CM8O*B"^U $DJ"2,J>]>.?$W1?F\R->1S7LU<UXHTE;^U<
ME<X% '@'AS5)[:^$;D@!O6O>=#UZ$Z>@9QG'K7ANJ::VGW\C*I&#Z4^T\3SV
MY$>XC% 'N.MZY"+!MK#./6O#O$>KS7-V8T8D$^M3WGB6:> IN)S6?I%H^HZC
M'N4G)H ],^$]M)$C,XZUZL1D8KF_"VDKI]JA"XR*Z6@#@_'NDK-IS,JY.*\,
MLY)].UQ5.0H-?3^K68O+8H1GBO#/%VA_8KQI53I[4 =IHFO+L3<W;UK9U#7(
M_+&&[>M>(6NM30<9(Q6@?$$LL1^8]* -;QGK32Q;8VJMX TM[O55DE7@FN>C
MDEU.[","1NKVOP5H*VMM'-MP: .UL[=;:$(H[59H'2B@#QCXN(6O8?J*WOAX
MN(8_I6?\3[9IKN(@9Y%;'@2(QQH".U 'H-%%% !7GGQ#_P!4?I7H=>=_$/\
MU1^E 'D-K8?:+J0J,FF6%Q/8ZN5.0H-=1X,LQ>:A,I&:K^)M'-G>/(JXY]*
M.XT775\A=S<_6M"\UV,0-ANWK7CEOK$UN=N2*EGU^9UV[C0!9\6ZG+<S;8SG
M)K=^&FE/)>^9*O4US&FVSZG=+N4G)KVWPGHBV,"2!<9% '5PQ"*,*.U2444
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
M[#K>E+--D(/RK,@T4+,IV=_2@#FM%\'F.19"G?/2O5]*MQ;6:IC&!2V=I''
MHVC@>E7  HP* %HHHH Y3Q/I'V^56VYP:M:%IWV-5&,8K>>-7ZBE5 O04 .H
MHHH *\Z^(G^I/TKT6O//B&,PGZ4 <E\,_FUB4>]=MX@T#[86.WK7%_#%,:U)
M_O5[2\*N.0* / -3\-&"8_+^E4[;P^TTRC;WKU_6=)664D(/RJCIVBA+A24[
M^E &7H/A;[.R.4_2O2[.(16ZKCH*2"V1(EPHZ58 P* %HHHH *Y+Q7HXU%?N
MYKK:8\:OU% 'A&K^%#;9;;^E9>F^'FN+O;MKVOQ!IJ3PX"C\JQM$T817NXI^
ME '-V/@TQ3JVS]*](T.R%I;A<8XK16UC&/E'Y5*JA1Q0 ZBBB@#"\36'V^Q\
MO&:=X;L/L-@(\8K9= XP10J!!@"@!U%%% !65KEF+NU*8SQ6K2,H88- 'CNL
M>%,(SA/TKC9]#;S,;>]?0>I6:26K#:/RKBIM#!F)V=_2@#C-#\+&9LE?TKTC
MP]HGV)3\N.*NZ#IJ0#E1^5=$L2KT H XVTT/RM?:YV]37:#H*8(E#;L#-24
M%9.L68NH67&<BM:D90W6@#QV^\&&6Y=PG4^E01^"2K@[/TKV,VL9/W1^5'V2
M+^Z/RH RO#-C]@T\1XQ6Y340(, 4Z@"*YC$D#+CJ*\QU_P *?:IG<)U]J]3Z
MU!+;(ZG*B@#YVU#PZT$A7;TK7TKPB;FTW;?TKO-6T42W#$)W]*Z#0M.2&S"E
M1^5 '(^'O"_V*124Z'TKT>!-D2CT%(L")T J6@ I#R*6B@#EO$&DB\1AMSFO
M/+_P:55WV?I7M+1JW453O;*-[9QM'3TH ^>VT%C<;-O>NPT;PB5"2%/TKH/[
M$'VS=L_B]*[6RLXX[9!M' ]* &Z5:BWL5CQT%<U<Z'O\0+<[>AKM  HP*:8E
M+;L#- "QC;&H]!3J** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** $8;ABJS6:,<XJ
MU10!#% L705-110 4444 %%%% #)$#C!JN;),YQ5NB@".*,1C J2BB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ I",C%+10!5>T1SDB
MGQ6ZQG@5/10 4444 %%%% !1110 4444 %1RQB1<&I** *GV-,8Q4\40B&!4
ME% !1110 5S'CB1H]!D9>N*Z>N>\80^=HLBXSQ0!Y%X5UIXKS;(W\5>QVFLQ
M/ GS=O6OG.Y>73M1X!'S5U>E^)VPBLYH ]L.I1@9S44NKQ(A.X=/6O.9/$8\
MD'?^M9&H>)B(CAZ ,SQUJC7>IO$C9!-=M\,--'V#>XYQ7E,1EU36@2"037O?
M@NS^R:>%QCB@#J5&% ]*6BB@ HHHH **** "F21B1<&GT4 5DM$1L@59HHH
M**** "BBB@!&7<N*K_9$W9Q5FB@!%&!BEHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH *KRVRR=15BB@"M':)&<@59HHH **** "BBB
M@""6W60Y(I@LT!SBK5% "*-HQ2T44 %%%% !1110 4444 %>?^/QF(_2O0*X
M#Q__ *H_2@#F/ALN-9D^M>S5XU\-S_Q.)/K7LM $$ELLAY%,2S1#D"K5% "
M8&*6BB@ HHHH **** (IH1*,$5'%:)&V0*LT4 %%%% !1110 4444 %%%% !
M1110 UU#K@U6-DA.<5;HH BBA6+H*EHHH **** "BBB@ HHHH **** "BBB@
M"M):(YR14L48B7 J2B@ HHHH **** "D9=RXI:* *GV)-V<5:5=JXI:* "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *HZI;_:;1DQUJ]2$
M CF@#POQ9X>\N5I-O0UYO>WQL)L9Q@U] >-(E$$AP.E?-/BUBMTV/[U &Q_P
MDI:,#?\ K42:L;J79NS7$Q2MZFM+1G)OER>] 'NW@SPY]H1+G;FO7]-MOL\(
M7&.*YKX>1*=!0XYP*[, #I0 M%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %>=?$1]L9^E>
MBUYM\2/]7^% '/\ PS;.L/\ 6O::\2^&'_(8?ZU[;0 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
0 !1110 4444 %%%% '__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<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.1</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 - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Mar. 14, 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_dei_CoverAbstract', window );"><strong>Cover [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_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<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_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<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_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<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_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2024<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_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>
<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">2024<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_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<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_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<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_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">0-21121<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_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">TRANSACT TECHNOLOGIES INC<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_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001017303<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_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>
<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">06-1456680<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_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">One Hamden Center<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_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">2319 Whitney Avenue, Suite 3B<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_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Hamden<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_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">CT<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_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">06518<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_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">203<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_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">859-6800<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_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common stock, par value $0.01 per share<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_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">TACT<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_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<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_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">No<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_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<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_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<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_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<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_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<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_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<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_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<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_dei_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">false<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_dei_DocumentFinStmtErrorCorrectionFlag', window );">Document Financial Statement Error Correction [Flag]</a></td>
<td class="text">false<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_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<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_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 33,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_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,080,717<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_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">688<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_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">Marcum LLP<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_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Hartford, Connecticut<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_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_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</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-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorFirmId</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:nonemptySequenceNumberItemType</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_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorLocation</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:internationalNameItemType</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_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_AuditorName</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:internationalNameItemType</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_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 annual 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-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_DocumentAnnualReport</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_DocumentFinStmtErrorCorrectionFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 whether any of the financial statement period in the filing include a restatement due to error correction.</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-K<br> -Number 229<br> -Section 402<br> -Subsection w<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 4: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_DocumentFinStmtErrorCorrectionFlag</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_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_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_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</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_EntityPublicFloat</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: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_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_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</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_EntityVoluntaryFilers</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_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</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 Securities Act<br> -Number 230<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_EntityWellKnownSeasonedIssuer</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_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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 Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<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_IcfrAuditorAttestationFlag</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_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>18
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_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">$ 14,394<span></span>
</td>
<td class="nump">$ 12,321<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_AccountsReceivableNetCurrent', window );">Accounts receivable, net of allowance for expected credit losses of $474 and $768</a></td>
<td class="nump">6,507<span></span>
</td>
<td class="nump">9,824<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_InventoryNet', window );">Inventories</a></td>
<td class="nump">16,161<span></span>
</td>
<td class="nump">17,759<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_PrepaidTaxes', window );">Prepaid income taxes</a></td>
<td class="nump">401<span></span>
</td>
<td class="nump">322<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_OtherAssetsCurrent', window );">Other current assets</a></td>
<td class="nump">899<span></span>
</td>
<td class="nump">773<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">38,362<span></span>
</td>
<td class="nump">40,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_PropertyPlantAndEquipmentNet', window );">Fixed assets, net of accumulated depreciation of $19,468 and $18,646</a></td>
<td class="nump">1,818<span></span>
</td>
<td class="nump">2,421<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 );">Right-of-use assets, net</a></td>
<td class="nump">1,141<span></span>
</td>
<td class="nump">1,602<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">2,621<span></span>
</td>
<td class="nump">2,621<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_DeferredIncomeTaxAssetsNet', window );">Deferred tax assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">6,304<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_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net of accumulated amortization of $1,606 and $1,518</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">88<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_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">92<span></span>
</td>
<td class="nump">163<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_AssetsNoncurrent', window );">Total noncurrent assets</a></td>
<td class="nump">5,672<span></span>
</td>
<td class="nump">13,199<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">44,034<span></span>
</td>
<td class="nump">54,198<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_LinesOfCreditCurrent', window );">Revolving loan payable</a></td>
<td class="nump">3,000<span></span>
</td>
<td class="nump">2,250<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_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">4,569<span></span>
</td>
<td class="nump">4,431<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_AccruedLiabilitiesCurrent', window );">Accrued liabilities</a></td>
<td class="nump">3,253<span></span>
</td>
<td class="nump">4,947<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_OperatingLeaseLiabilityCurrent', window );">Lease liabilities</a></td>
<td class="nump">955<span></span>
</td>
<td class="nump">929<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_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="nump">1,107<span></span>
</td>
<td class="nump">1,079<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_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">12,884<span></span>
</td>
<td class="nump">13,636<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_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, net of current portion</a></td>
<td class="nump">246<span></span>
</td>
<td class="nump">209<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 );">Lease liabilities, net of current portion</a></td>
<td class="nump">231<span></span>
</td>
<td class="nump">720<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_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">40<span></span>
</td>
<td class="nump">219<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_LiabilitiesNoncurrent', window );">Total noncurrent liabilities</a></td>
<td class="nump">517<span></span>
</td>
<td class="nump">1,148<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">13,401<span></span>
</td>
<td class="nump">14,784<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 (see Notes 9 and 15)</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>Shareholders' 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_PreferredStockValue', window );">Preferred stock</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_CommonStockValue', window );">Common stock, $0.01 par value, 20,000,000 authorized at December 31, 2024 and 2023; 14,068,049 and 14,003,653 shares issued; 10,023,207 and 9,958,811 shares outstanding, at December 31, 2024 and 2023, respectively</a></td>
<td class="nump">141<span></span>
</td>
<td class="nump">140<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_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">58,141<span></span>
</td>
<td class="nump">57,055<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_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">4,515<span></span>
</td>
<td class="nump">14,378<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_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss, net of tax</a></td>
<td class="num">(54)<span></span>
</td>
<td class="num">(49)<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_TreasuryStockValue', window );">Treasury stock, 4,044,842 shares, at cost</a></td>
<td class="num">(32,110)<span></span>
</td>
<td class="num">(32,110)<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 shareholders' equity</a></td>
<td class="nump">30,633<span></span>
</td>
<td class="nump">39,414<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 shareholders' equity</a></td>
<td class="nump">44,034<span></span>
</td>
<td class="nump">54,198<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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Series A Preferred Stock [Member]</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_StockholdersEquityAbstract', window );"><strong>Shareholders' 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_PreferredStockValue', window );">Preferred stock</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<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_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_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_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</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_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="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/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 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 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 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)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-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 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/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 2: 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 3: 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 4: 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 5: 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 6: 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 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 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 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(18))<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 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 18: 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 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)(iii))<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/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 29: 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 30: 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 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 2: 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 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(g)(1)(ii))<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 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 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 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 7: 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 8: 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 9: 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 10: 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 11: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: 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_AssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 all assets that are expected to be realized in cash, sold or consumed after one year or beyond 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/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 2: 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 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(g)(1)(ii))<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 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 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/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 7: 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 8: 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 9: 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 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)(iv))<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)(5))<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 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 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)(iii)(A))<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)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: 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_AssetsNoncurrent</td>
</tr>
<tr>
<td style="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_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 currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</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://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/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 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 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<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 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<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 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 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<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 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<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 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_DeferredIncomeTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, 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 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 2: 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_DeferredIncomeTaxAssetsNet</td>
</tr>
<tr>
<td style="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 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 2: 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 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> -Subparagraph (d)<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/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 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 6: 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 7: 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 8: 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 9: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment 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/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/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="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_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or 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 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 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: 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(6))<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_InventoryNet</td>
</tr>
<tr>
<td style="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://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 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(25))<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(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: 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 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(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: 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 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)(4)(iii)(A))<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)(iv))<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)(5))<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 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 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)(iii)(A))<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)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: 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 28: 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 29: 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/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 2: 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 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(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: 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 5: 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 6: 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 7: 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://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 2: 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 3: 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 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 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 6: 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 7: 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 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 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<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)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: 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 21: 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_LiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 due after one year or beyond 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> -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(24))<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(25))<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(26))<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(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 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_LiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="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_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_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_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_OtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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/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 2: 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(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_OtherAssetsCurrent</td>
</tr>
<tr>
<td style="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_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 after 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(24))<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_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="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_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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(28))<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 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(21))<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_PreferredStockValue</td>
</tr>
<tr>
<td style="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_PrepaidTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income and other taxes 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/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)(4)<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 (d)<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_PrepaidTaxes</td>
</tr>
<tr>
<td style="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://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://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 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(31))<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/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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.</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://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 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481520/505-30-50-4<br><br>Reference 4: 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_TreasuryStockValue</td>
</tr>
<tr>
<td style="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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</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>19
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Allowance for expected credit losses</a></td>
<td class="nump">$ 474<span></span>
</td>
<td class="nump">$ 768<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Fixed assets, accumulated depreciation</a></td>
<td class="nump">19,468<span></span>
</td>
<td class="nump">18,646<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, accumulated amortization</a></td>
<td class="nump">$ 1,606<span></span>
</td>
<td class="nump">$ 1,518<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>Shareholders' 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_PreferredStockParOrStatedValuePerShare', window );">Preferred stock par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<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_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</a></td>
<td class="nump">4,800,000<span></span>
</td>
<td class="nump">4,800,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_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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 (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<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 (in shares)</a></td>
<td class="nump">20,000,000<span></span>
</td>
<td class="nump">20,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 (in shares)</a></td>
<td class="nump">14,068,049<span></span>
</td>
<td class="nump">14,003,653<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 (in shares)</a></td>
<td class="nump">10,023,207<span></span>
</td>
<td class="nump">9,958,811<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_TreasuryStockCommonShares', window );">Treasury stock (in shares)</a></td>
<td class="nump">4,044,842<span></span>
</td>
<td class="nump">4,044,842<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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Series A Preferred Stock [Member]</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_StockholdersEquityAbstract', window );"><strong>Shareholders' equity:</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_PreferredStockParOrStatedValuePerShare', window );">Preferred stock par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<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_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</a></td>
<td class="nump">200,000<span></span>
</td>
<td class="nump">200,000<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_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</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)(8)(b))<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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<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> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allowance for credit loss on accounts 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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<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 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-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_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="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_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_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_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> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<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_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 preferred stock nonredeemable or redeemable solely at the option of the issuer.</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(28))<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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="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_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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(28))<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_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="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_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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(28))<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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="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_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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(28))<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 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 3: 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 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(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 5: 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_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockCommonShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 previously issued common shares repurchased by the issuing entity and held in 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> -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_TreasuryStockCommonShares</td>
</tr>
<tr>
<td style="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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</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>20
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_IncomeStatementAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS [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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 43,384<span></span>
</td>
<td class="nump">$ 72,631<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_CostOfRevenue', window );">Cost of sales</a></td>
<td class="nump">21,902<span></span>
</td>
<td class="nump">34,231<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_GrossProfit', window );">Gross profit</a></td>
<td class="nump">21,482<span></span>
</td>
<td class="nump">38,400<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_OperatingExpensesAbstract', window );"><strong>Operating expenses:</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_ResearchAndDevelopmentExpense', window );">Engineering, design and product development</a></td>
<td class="nump">6,977<span></span>
</td>
<td class="nump">9,442<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 );">Selling and marketing</a></td>
<td class="nump">8,195<span></span>
</td>
<td class="nump">9,934<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_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">9,936<span></span>
</td>
<td class="nump">13,318<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 );">Operating expenses</a></td>
<td class="nump">25,108<span></span>
</td>
<td class="nump">32,694<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) income</a></td>
<td class="num">(3,626)<span></span>
</td>
<td class="nump">5,706<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>Interest and other income (expense):</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_InterestExpenseNonoperating', window );">Interest expense</a></td>
<td class="num">(322)<span></span>
</td>
<td class="num">(310)<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_InterestIncomeDomesticDeposits', window );">Interest income</a></td>
<td class="nump">469<span></span>
</td>
<td class="nump">55<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_OtherNonoperatingIncomeExpense', window );">Other, net</a></td>
<td class="num">(89)<span></span>
</td>
<td class="nump">452<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_NonoperatingIncomeExpense', window );">Interest and other income (expense)</a></td>
<td class="nump">58<span></span>
</td>
<td class="nump">197<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">(Loss) income before income taxes</a></td>
<td class="num">(3,568)<span></span>
</td>
<td class="nump">5,903<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_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="num">(6,295)<span></span>
</td>
<td class="num">(1,155)<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_NetIncomeLoss', window );">Net (loss) income</a></td>
<td class="num">$ (9,863)<span></span>
</td>
<td class="nump">$ 4,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_EarningsPerShareAbstract', window );"><strong>Net (loss) income per common share:</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_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="num">$ (0.99)<span></span>
</td>
<td class="nump">$ 0.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_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="num">$ (0.99)<span></span>
</td>
<td class="nump">$ 0.47<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_EarningsPerShareBasicOtherDisclosuresAbstract', window );"><strong>Shares used in per-share calculation:</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">9,997<span></span>
</td>
<td class="nump">9,951<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">9,997<span></span>
</td>
<td class="nump">10,021<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_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/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 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(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<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(g)(1)(ii))<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 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 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/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 7: 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 9: 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 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)(5))<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 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 12: 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 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)(iii)(B))<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)(iv))<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)(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_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_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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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 19: 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 20: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_EarningsPerShareBasicOtherDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EarningsPerShareBasicOtherDisclosuresAbstract</td>
</tr>
<tr>
<td style="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_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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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 19: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/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 2: 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 3: 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 4: 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 5: 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 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 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)(iii)(A))<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)(4)(iv))<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)(5))<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 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 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)(A))<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)(iii)(B))<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)(iv))<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)(5))<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/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/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 2: 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 3: 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 4: 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 5: 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 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: 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 8: 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 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><br>Reference 10: 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 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(10))<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 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/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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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_InterestExpenseNonoperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpenseNonoperating</td>
</tr>
<tr>
<td style="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_InterestIncomeDomesticDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Interest earned on deposits in United States money market accounts and other United States interest earning accounts.</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 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(4))<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_InterestIncomeDomesticDeposits</td>
</tr>
<tr>
<td style="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/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 2: 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 3: 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 4: 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 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(20))<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 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 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 10: 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 11: 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 12: 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 13: 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 14: 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 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 (b)<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 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: 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 18: 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 19: 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 20: 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 21: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<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)(iv))<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)(5))<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 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 33: 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 34: 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 35: 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 36: 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 37: 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>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_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/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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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://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 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 2: 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 3: 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 4: 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/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 2: 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 3: 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 4: 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 5: 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 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/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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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>21
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME [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_NetIncomeLoss', window );">Net (loss) income</a></td>
<td class="num">$ (9,863)<span></span>
</td>
<td class="nump">$ 4,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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment, net of tax</a></td>
<td class="num">(5)<span></span>
</td>
<td class="nump">30<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_ComprehensiveIncomeNetOfTax', window );">Comprehensive (loss) income</a></td>
<td class="num">$ (9,868)<span></span>
</td>
<td class="nump">$ 4,778<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/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 2: 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 3: 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 4: 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 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(20))<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 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 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 10: 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 11: 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 12: 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 13: 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 14: 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 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 (b)<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 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: 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 18: 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 19: 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 20: 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 21: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<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)(iv))<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)(5))<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 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 33: 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 34: 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 35: 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 36: 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 37: 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_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>22
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Treasury Stock [Member]</div></th>
<th class="th"><div>Accumulated Other Comprehensive Income (Loss) [Member]</div></th>
<th class="th"><div>Total</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, 2022</a></td>
<td class="nump">$ 139<span></span>
</td>
<td class="nump">$ 56,282<span></span>
</td>
<td class="nump">$ 9,630<span></span>
</td>
<td class="num">$ (32,110)<span></span>
</td>
<td class="num">$ (79)<span></span>
</td>
<td class="nump">$ 33,862<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_CommonStockSharesIssued', window );">Beginning balance (in shares) at Dec. 31, 2022</a></td>
<td class="nump">9,911,883<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_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</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_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock from exercise of stock options</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="nump">0<span></span>
</td>
<td class="nump">0<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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock from exercise of stock options (in shares)</a></td>
<td class="nump">1,875<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_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures', window );">Issuance of common stock on restricted stock units</a></td>
<td class="nump">$ 1<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="nump">0<span></span>
</td>
<td class="nump">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_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures', window );">Issuance of common stock on restricted stock units (in shares)</a></td>
<td class="nump">58,705<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_StockGrantedDuringPeriodValueSharebasedCompensationForfeited', window );">Relinquishment of stock awards and deferred stock units to pay withholding taxes</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">(87)<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="num">(87)<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_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Relinquishment of stock awards and deferred stock units to pay withholding taxes (in shares)</a></td>
<td class="num">(13,652)<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Share-based compensation expense</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">860<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="nump">860<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 adjustment, net of tax</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="nump">30<span></span>
</td>
<td class="nump">30<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) income</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,748<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,748<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 Dec. 31, 2023</a></td>
<td class="nump">$ 140<span></span>
</td>
<td class="nump">57,055<span></span>
</td>
<td class="nump">14,378<span></span>
</td>
<td class="num">(32,110)<span></span>
</td>
<td class="num">(49)<span></span>
</td>
<td class="nump">$ 39,414<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_CommonStockSharesIssued', window );">Ending balance (in shares) at Dec. 31, 2023</a></td>
<td class="nump">9,958,811<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">14,003,653<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_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</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_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures', window );">Issuance of common stock on restricted stock units</a></td>
<td class="nump">$ 1<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="nump">0<span></span>
</td>
<td class="nump">$ 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_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures', window );">Issuance of common stock on restricted stock units (in shares)</a></td>
<td class="nump">74,995<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_StockGrantedDuringPeriodValueSharebasedCompensationForfeited', window );">Relinquishment of stock awards and deferred stock units to pay withholding taxes</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">(71)<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="num">(71)<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_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Relinquishment of stock awards and deferred stock units to pay withholding taxes (in shares)</a></td>
<td class="num">(10,599)<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Share-based compensation expense</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">1,157<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="nump">1,157<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 adjustment, net of tax</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="num">(5)<span></span>
</td>
<td class="num">(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_NetIncomeLoss', window );">Net (loss) income</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(9,863)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(9,863)<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 Dec. 31, 2024</a></td>
<td class="nump">$ 141<span></span>
</td>
<td class="nump">$ 58,141<span></span>
</td>
<td class="nump">$ 4,515<span></span>
</td>
<td class="num">$ (32,110)<span></span>
</td>
<td class="num">$ (54)<span></span>
</td>
<td class="nump">$ 30,633<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_CommonStockSharesIssued', window );">Ending balance (in shares) at Dec. 31, 2024</a></td>
<td class="nump">10,023,207<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">14,068,049<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_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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-12<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_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_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 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(20))<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 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 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 10: 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 11: 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 12: 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 13: 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 14: 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 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 (b)<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 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: 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 18: 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 19: 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 20: 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 21: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<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)(iv))<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)(5))<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 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 33: 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 34: 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 35: 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 36: 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 37: 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_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 used to settle grantee's tax withholding obligation 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>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_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="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_StockGrantedDuringPeriodValueSharebasedCompensationForfeited">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 forfeited shares granted under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</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_StockGrantedDuringPeriodValueSharebasedCompensationForfeited</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 related to Restricted Stock Awards, net of any shares forfeited.</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_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 related to Restricted Stock Awards issued during the period, net of the stock value of such awards forfeited.</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 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_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures</td>
</tr>
<tr>
<td style="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_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://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://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 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(31))<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/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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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>23
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_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_NetIncomeLoss', window );">Net (loss) income</a></td>
<td class="num">$ (9,863)<span></span>
</td>
<td class="nump">$ 4,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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net (loss) income to net cash provided by 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_ShareBasedCompensation', window );">Share-based compensation expense</a></td>
<td class="nump">1,157<span></span>
</td>
<td class="nump">860<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_DepreciationAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">1,037<span></span>
</td>
<td class="nump">1,489<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 income taxes</a></td>
<td class="nump">6,304<span></span>
</td>
<td class="nump">1,020<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_ForeignCurrencyTransactionGainLossUnrealized', window );">Foreign currency transaction losses (gains)</a></td>
<td class="nump">89<span></span>
</td>
<td class="num">(30)<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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable</a></td>
<td class="nump">3,315<span></span>
</td>
<td class="nump">4,248<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_IncreaseDecreaseInOtherReceivables', window );">Employee retention credit receivable</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,500<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_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="nump">1,607<span></span>
</td>
<td class="num">(5,658)<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_IncreaseDecreaseInPrepaidTaxes', window );">Prepaid income taxes</a></td>
<td class="num">(80)<span></span>
</td>
<td class="num">(322)<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_IncreaseDecreaseInOtherOperatingAssets', window );">Other current and long-term assets</a></td>
<td class="num">(43)<span></span>
</td>
<td class="num">(10)<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_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="nump">149<span></span>
</td>
<td class="num">(2,988)<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_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities', window );">Accrued liabilities and other liabilities</a></td>
<td class="num">(1,811)<span></span>
</td>
<td class="nump">650<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 operating activities</a></td>
<td class="nump">1,861<span></span>
</td>
<td class="nump">5,507<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 );">Capital expenditures</a></td>
<td class="num">(322)<span></span>
</td>
<td class="num">(901)<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_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(322)<span></span>
</td>
<td class="num">(901)<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_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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromLinesOfCredit', window );">Proceeds from bank borrowings</a></td>
<td class="nump">750<span></span>
</td>
<td class="nump">0<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_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Withholding taxes paid on stock issuance</a></td>
<td class="num">(71)<span></span>
</td>
<td class="num">(87)<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_PaymentsOfLoanCosts', window );">Payment of bank financing costs</a></td>
<td class="num">(45)<span></span>
</td>
<td class="nump">0<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_NetCashProvidedByUsedInFinancingActivities', window );">Net cash provided by (used in) financing activities</a></td>
<td class="nump">634<span></span>
</td>
<td class="num">(87)<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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Effect of exchange rate changes on cash and cash equivalents</a></td>
<td class="num">(100)<span></span>
</td>
<td class="num">(144)<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Increase in cash and cash equivalents</a></td>
<td class="nump">2,073<span></span>
</td>
<td class="nump">4,375<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, beginning of period</a></td>
<td class="nump">12,321<span></span>
</td>
<td class="nump">7,946<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, end of period</a></td>
<td class="nump">14,394<span></span>
</td>
<td class="nump">12,321<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_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental cash flow information:</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_InterestPaidNet', window );">Interest paid</a></td>
<td class="nump">272<span></span>
</td>
<td class="nump">268<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_IncomeTaxesPaid', window );">Income taxes paid</a></td>
<td class="nump">499<span></span>
</td>
<td class="nump">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_CapitalExpendituresIncurredButNotYetPaid', window );">Non-cash capital expenditures</a></td>
<td class="nump">$ 9<span></span>
</td>
<td class="nump">$ 23<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_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_CapitalExpendituresIncurredButNotYetPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Future cash outflow to pay for purchases of fixed assets that have occurred.</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 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-3<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 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-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_CapitalExpendituresIncurredButNotYetPaid</td>
</tr>
<tr>
<td style="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_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 equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="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 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 3: 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_DepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.</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://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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAndAmortization</td>
</tr>
<tr>
<td style="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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</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 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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="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_ForeignCurrencyTransactionGainLossUnrealized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax, of unrealized gain (loss) from foreign currency transaction.</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/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-6<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(7)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481956/830-20-45-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481926/830-20-50-1<br><br>Reference 6: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionGainLossUnrealized</td>
</tr>
<tr>
<td style="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_IncomeTaxesPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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/2009/role/commonPracticeRef<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/2009/role/commonPracticeRef<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/2009/role/commonPracticeRef<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> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br><br>Reference 5: 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_IncomeTaxesPaid</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</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_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="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_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_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</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_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="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_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_IncreaseDecreaseInOtherOperatingAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating 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_IncreaseDecreaseInOtherOperatingAssets</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInOtherReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivables 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_IncreaseDecreaseInOtherReceivables</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInPrepaidTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 consideration paid in advance for income and other taxes that provide economic benefits in future periods.</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_IncreaseDecreaseInPrepaidTaxes</td>
</tr>
<tr>
<td style="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 activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</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 activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</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 activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</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_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/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 2: 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 3: 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 4: 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 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(20))<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 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 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 10: 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 11: 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 12: 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 13: 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 14: 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 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 (b)<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 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: 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 18: 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 19: 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 20: 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 21: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<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)(iv))<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)(5))<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 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 33: 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 34: 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 35: 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 36: 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 37: 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_PaymentsOfLoanCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for loan origination associated cost which is usually collected through escrow.</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 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<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_PaymentsOfLoanCosts</td>
</tr>
<tr>
<td style="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_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 outflow to satisfy grantee's tax withholding obligation 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 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_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="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_ProceedsFromLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.</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 S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(f))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-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_ProceedsFromLinesOfCredit</td>
</tr>
<tr>
<td style="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>24
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of business<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_tact_DescriptionOfBusinessAbstract', window );"><strong>Description of business [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_NatureOfOperations', window );">Description of business</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">1. Description of business</div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">TransAct Technologies Incorporated (together with its subsidiaries, &#8220;TransAct,&#8221; the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;our&#8221;), which has its headquarters in
      Hamden, Connecticut and its primary operating facility in Ithaca, New York, operates in one operating segment: software-driven technology
      and printing solutions for high growth markets including food service technology, casino and gaming and &#8220;point of sale&#8221; (&#8220;POS&#8221;) automation markets.&#160; Our solutions are designed from the ground up based on market and customer requirements and are sold
      under the BOHA!<sup>TM</sup>, AccuDate&#8482;, Epic, Ithaca&#174;, and EPICENTRAL<sup>&#174;</sup> product brands.&#160; We sell our products to original equipment manufacturers, value-added resellers, select distributors, and directly to end-users.&#160; Our product
      distribution spans across the Americas, Europe, the Middle East, Africa, Asia, Australia, New Zealand, the Caribbean Islands and the South Pacific. TransAct also provides world-class service, spare parts, accessories and printing supplies to its
      growing worldwide installed base of products.&#160; We also generate revenue from the after-market side of the business, providing printer and terminal service, consumables and spare parts in addition to revenue from our two software solutions; (i) our line of BOHA! software applications used to automate the back-of-house operations of restaurants, convenience stores and
      food service operators and (ii) the EPICENTRAL Print System (&#8220;EPICENTRAL&#8221;), that enables casino operators to create promotional coupons and marketing messages and print them in real time at the slot machine.</div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <span style="font-size: 10pt; font-family: 'Times New Roman';"><br/>
      </span></div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">After strong demand during most of 2023 due in part to our primary competitor&#8217;s struggle to deliver products in the face
        of supply chain constraints, in late 2023, we began to see indications of a temporary slowdown in demand in the casino and gaming market, as customers that had built up excess inventory due to supply chain concerns advised us that they would
        temporarily reduce orders until their stock normalized. This slowdown impacted our results in the fourth quarter of 2023 and during the year ended December 31, 2024. After reviewing whether conditions and/or events raise substantial doubt about our
        ability to meet future financial obligations over the 12 months following the date on which the Consolidated Financial Statements included in this Annual Report on Form 10-K (this &#8220;Form 10-K&#8221;) were issued, including consideration of the actions
        taken to manage expenses and liquidity, we believe that our net cash to be provided by operations combined with our cash and cash equivalents and borrowing availability under our revolving credit facility will provide sufficient liquidity to fund
        our current obligations, capital spending, and working capital requirements and to comply with the financial covenants of our credit facility over at least 12 months following such issuance date.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Use of Assumptions and Estimates</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span>
     <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;">Management&#8217;s belief that the Company will
            be able to fund its planned operations over the 12 months following the date on which the Consolidated Financial Statements were issued is based on assumptions which involve significant judgment and estimates of future revenues, inflation,
            interest rates, capital expenditures and other operating costs. Our current assumption is that consumer traffic will continue to remain strong ay casinos and restaurants during 2025. We cannot predict the ultimate impact of the current economic
            environment, including inflation, interest rates and supply chain disruptions on our customers, which may impact sales. We believe that we are positioned to withstand the impact of any potential economic downturn and we would be able to take
            additional financial and operational actions to cut costs and/or increase liquidity.</span> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span>
       <br/></div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">In addition, the presentation of the accompanying audited Consolidated Financial Statements requires us to make estimates
        and judgments that affect the reported amounts of assets, liabilities, revenue and expenses, and the disclosure of contingent assets and liabilities. Our estimates include those related to revenue recognition, accounts receivable, inventory
        obsolescence, goodwill and intangible assets, the valuation of deferred tax assets and liabilities, depreciable lives of equipment, share-based compensation and contingent liabilities. We base our estimates on historical experience and on various
        other assumptions that we believe to be reasonable under the circumstances. Actual results could differ from those estimates used.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Smaller Reporting Company</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span>
     <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">As a smaller reporting company, as defined in Item 10(f)(1) of Regulation S-K, we may choose to prepare our disclosures relying on certain scaled
      disclosure requirements for smaller reporting companies in Regulation S-K and in Article 8 of Regulation S-X.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The scaled disclosure requirements for smaller reporting companies permit us (i) to include less extensive narrative disclosure than required of other
      reporting companies, particularly in the description of executive compensation in our proxy statement and (ii) to provide audited financial statements for two fiscal years in our Form 10-K, in contrast to other reporting companies, which must provide
      audited financial statements for three years.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">We will cease to be a smaller reporting company if we have (i) equal to or greater than $250 million in market value of our shares held by non-affiliates as of the last
        business day of our second fiscal quarter, (ii) equal to or greater than $100 million in annual revenue for the most recent fiscal year or (iii) less than $100 million in annual revenue for the most recent fiscal year and the market value of our
        shares held by non-affiliates exceeds $700 million as of the last business day of our second fiscal quarter.</span></div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_DescriptionOfBusinessAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tact_DescriptionOfBusinessAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_NatureOfOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.</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> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/275/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<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_NatureOfOperations</td>
</tr>
<tr>
<td style="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>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.1</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">12 Months Ended</th>
</tr>
<tr><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_AccountingPoliciesAbstract', window );"><strong>Summary of significant 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_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock', window );">Summary of significant accounting policies</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">2. Summary of significant accounting policies</div>

<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Principles of consolidation: </span>The accompanying Consolidated Financial Statements include the
      audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Certain amounts for prior years have been reclassified to conform to the current year presentation.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Use of estimates</span><span style="font-weight: bold;">:</span> The preparation of Consolidated Financial
      Statements in conformity with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and
      disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Cash and cash equivalents</span><span style="font-weight: bold;">:</span> We consider all highly
      liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>

<div style="text-align: justify;"><span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;">Accounts receivable and credit losses</span><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">: The Company records accounts receivable when the right to consideration becomes
          unconditional. We establish an allowance for expected credit losses to ensure trade receivables are valued appropriately. </span> </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><br/>
        </span> </div>

<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"> </span></div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">We are exposed to credit losses primarily through our net sales of products and services to our customers which are recorded as Accounts Receivable, net on the
        Consolidated Balance Sheets. We evaluate each customer&#8217;s ability to pay through assessing customer creditworthiness, historical experience and current economic conditions through a reasonable forecast period. Factors considered in our evaluation of
        assessing collectability and risk include: underlying value of any collateral or security interests, significant past due balances, historical losses and existing economic conditions including country and political risk. There can be no assurance
        that actual results will not differ from estimates or that consideration of these factors in the future will not result in an increase or decrease to the allowance for credit losses. We may require collateral or prepayment to mitigate credit risk.</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"> <br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We estimate expected credit losses of financial assets with similar risk characteristics. We determine an asset is impaired when our assessment identifies there is a
          risk that we will be unable to collect amounts due according to the contractual terms of the agreement. We monitor our ongoing credit exposure through reviews of customer balances against contract terms and due dates, current economic conditions
          and dispute resolution. Estimated credit losses are written off in the period in which the financial asset is no longer collectible.</div>

<div style="font-family: 'Times New Roman';">&#160;</div>

<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"> </span></div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"> <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"><span style="font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The following table summarizes the activity
          recorded in the allowance for expected credit losses related to accounts receivable:</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Years Ended December 31,</span></div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">768</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">351</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Additions charged to costs and expenses</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deductions</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(294</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(189</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">474</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">768</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">   </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Inventories:</span> Inventories are stated at the lower
        of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completion, disposal and transportation, historical usage and estimates of future
        demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.</span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
      </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Fixed assets:</span> Fixed assets are stated at cost.&#160; Depreciation is recorded using the
      straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is five years; machinery and equipment is ten years; furniture and office equipment is five years
      to ten years; and computer software and equipment is three years to seven years.&#160; Leasehold improvements are amortized over the shorter of the term of the
      lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is
      recognized.&#160; Depreciation expense was $0.9 and $1.3 million in 2024 and 2023, respectively.</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Leases:</span> We account for leases in accordance with ASC 842, &#8220;Leases&#8221; (&#8220;ASC 842&#8221;), which requires lessees to apply a
      dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on
      an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12
      months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as
      financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We elected certain practical expedients available under ASC 842 upon adoption. We applied the practical expedient for short-term leases. We have
      lease agreements that include lease and non-lease components, and we did not elect the practical expedients to combine these components for any of our leases.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing or sales-type
      leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#8220;Right-of-use assets, net&#8221; and &#8220;Lease liabilities&#8221; in our Consolidated Balance Sheets.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease
      payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company
      determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease
      right of use asset excludes lease incentives. Our leases have remaining lease terms of one year to three years, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets
      and liabilities reflect only the options we are reasonably certain that we will exercise.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
      </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Goodwill and Intangible assets</span><span style="font-weight: bold;">:</span> We acquire
      businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#8220;Goodwill,&#8221;
      acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test
      to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to
      first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant
      events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test
      is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#8217;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may
      trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired
      assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment
      when appropriate. All of our finite lived intangible assets are fully amortized as of December 31, 2024.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">As of December 31, 2024, we have determined that no
      goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2024 when our annual review for impairment was performed.</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Revenue recognition:</span> We account for revenue in accordance with ASC Topic 606: Revenue
      from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance
      obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#8217;s transaction price is allocated to each distinct performance
      obligation and recognized as revenue when, or as, the performance obligation is satisfied.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the
      customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction
      price utilizing either the &#8220;expected value&#8221; method or the &#8220;most likely amount&#8221; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#8217;s judgment, it is probable
      that a significant future reversal of cumulative revenue under the contract will not occur.</div>

<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a
      point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and
      gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to
      the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#8217;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal
      acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as
      control of the product is transferred to the customer and our performance obligation is completed.</div>

<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it
      is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our
      food service technology terminals and maintenance agreements (including free one-year maintenance received by customers upon completion of
      EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to
      the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract
      period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#8220;standalone selling price&#8221; method to
      determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price
      discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment
      approach.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period
      of the cost to obtain a contract is less than 12 months.</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Disaggregation of revenue</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our
      revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31, 2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;<span style="font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Food service technology</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">14,719</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,382</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">16,101</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">POS automation</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,361</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,361</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Casino and gaming</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">12,522</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">7,826</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">20,348</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">TransAct Services Group</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2,883</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">691</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,574</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total net sales</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">33,485</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">9,899</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">43,384</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Year Ended December 31, 2023</span></div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">&#160;</span><span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Food service technology</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15,159</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,149</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">16,308</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">POS automation</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6,805</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">117</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6,922</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Casino and gaming</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">28,715</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">12,477</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">41,192</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">TransAct Services Group</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">7,381</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">828</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">8,209</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total net sales</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">58,060</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">14,571</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">72,631</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Contract balances</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the
      customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included
      within &#8220;Accounts Receivable, net&#8221; and &#8220;Other Assets&#8221; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#8220;Accrued Liabilities&#8221; in current
      liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160;
      Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid
      software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2024, we recognized revenue of $1.1 million related to our contract liabilities as of December 31, 2023.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Net contract (liabilities) assets consist of the following:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;<span style="font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Unbilled receivables, current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">106</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">145</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Unbilled receivables, non-current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">32</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">120</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Customer pre-payments</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(164</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(155</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,107</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,079</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, non-current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(246</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(209</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Net contract (liabilities) assets</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,379</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,178</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Remaining performance obligations</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our
      customer.&#160; As of December 31, 2024, the aggregate amount of the transaction price allocated to remaining performance obligations was $6.3 million. The Company expects to recognize revenue on $6.0
      million of its remaining performance obligations within the next 12 months following December 31, 2024, $0.2 million within the next <span style="-sec-ix-hidden:Fact_070b19bc2e87417485287551ea3163d4">24</span> months
      following December 31, 2024 and the&#160;<span style="-sec-ix-hidden:Fact_e37ea88e93bd42529bfb23dbe89fa89f">balance</span> of these remaining performance obligations within the next <span style="-sec-ix-hidden:Fact_f50c8aea3ef443c8a2609b35c6a05cf4">36</span> months following December 31, 2024.</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Concentration of credit risk:</span>&#160; Financial instruments that potentially expose us to
      concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Accounts receivable from customers representing 10% or more of total accounts receivable, net during the years ended December 31, 2024 and 2023 were as
      follows:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
              <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
                <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Light &amp; Wonder Gaming, Inc.</div>
              </div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International Gaming Technology (&#8220;IGT&#8221;) </div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">28</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Sales to customers representing 10% or more of total net sales during the years ended December 31, 2024 and 2023 were as follows:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Light &amp; Wonder Gaming, Inc.</div>
          </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">11</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">%</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">6</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">%</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">IGT</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Engineering, design and product development:</span> Engineering, design and product
      development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $7.0 million and $9.4 million of research
      and development expenses in 2024 and 2023,
      respectively.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological
      feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in
      determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been
      included in cost of sales over the estimated life of the product.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Advertising:</span> Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in
      selling and marketing expense on the accompanying Consolidated Statements of Operations for 2024 and 2023 totaled $1.2 million and $1.7 million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Income taxes:</span> The income tax amounts reflected in the accompanying Consolidated Financial Statements
      are accounted for under the liability method in accordance with ASC 740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial
      statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which
      those temporary differences are expected to be recovered or settled. A valuation allowance is provided for certain deferred tax assets if it is more likely than not that the Company will not realize some portion of the deferred tax assets through
      future operations.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. See Note 11 &#8211; Income Taxes.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Foreign currency translation:</span> The financial position and results of operations of our
      foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been
      translated at the weighted average rate for the period, and shareholders&#8217; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#8217; equity as a cumulative
      translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated
      Statements of Operations.</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Share-based payments:</span><span style="font-weight: bold;">&#160;</span>At December 31, 2024, we have share-based employee compensation plans, which are described more fully in Note 10 - Stock incentive plans. We account for those plans
      under the recognition and measurement principles of ASC 718, &#8220;Compensation &#8211; Stock Compensation.&#8221;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the
      employee&#8217;s requisite service period.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards. The key assumptions for this valuation method
      include the expected term of the option, our stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the
      determination of compensation expense.&#160; Forfeitures are recognized as they occur.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;"><span style="color: rgb(0, 0, 0); font-style: italic; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">Net income (loss) per share</span>:</span> We report net income or loss per share in accordance with ASC 260, &#8220;Earnings per Share (EPS).&#8221; Under this guidance, basic EPS, which excludes dilution, is computed by
      dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock
      were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore,
      these instruments are excluded from the computation of diluted EPS.&#160; See Note 12 - Earnings per share.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"><span style="font-weight: bold; font-style: italic; font-family: 'Times New Roman'; font-size: 10pt;">Recently issued accounting pronouncements</span><span style="font-family: 'Times New Roman'; font-size: 10pt;">:</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">On November 27, 2023, the FASB issued ASU 2023-07, <span style="font-style: italic;">Segment Reporting (Topic 280)</span>.&#160; The
              amendments improve reportable segment disclosures requirements and clarify circumstances in which an entity can disclose multiple segment measures of profit or loss, provide new segment disclosure requirements for entities with a single
              reportable segment and contain other disclosure requirements.&#160; These amendments are effective for fiscal years beginning after December 15, 2023 and for interim periods beginning after December 15, 2024. These segment disclosure requirements
              must be applied retrospectively to all periods presented in the financial statements.&#160; We adopted this standard effective January 1, 2024, and this standard did not have a material impact on the Company&#8217;s Consolidated Financial Statements. We
              have adopted this standard for our fiscal year 2024 annual financial statements and interim financial statements thereafter and have applied this standard retrospectively for all prior periods presented in the financial statements. See Note 7
              &#8211; Segment Reporting for further information.</div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
            </div>

<div>
            On December 14, 2023, the FASB issued ASU 2023-09, <span style="font-style: italic;">Income Taxes (Topic 740)</span>.&#160;&#160; This ASU requires the use of consistent categories and greater disaggregation in tax rate reconciliations and income taxes
            paid disclosures. These amendments are effective for fiscal years beginning after December 15, 2024. These income tax disclosure requirements can be applied either prospectively or retrospectively to all periods presented in the financial
            statements. We are currently evaluating the impact of adopting this standard; however, we do not expect it to have a material impact on our Consolidated Financial Statements.
            </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
              </span> </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">In November 2024, the FASB issued ASU 2024-03, Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40):
              Disaggregation of Income Statement Expenses. The amendments in this update require footnote disclosures on disaggregated information about specific categories underlying certain income statement expense line items that are considered
              relevant. This includes items such as the purchase of inventory, employee compensation, depreciation, and intangible asset amortization. The amendments in ASU 2024-03 are effective for fiscal years beginning after December 15, 2026. Early
              adoption is permitted. Adoption of this ASU will result in additional disclosure, but will not impact our consolidated financial position, results of operations, or cash flows.</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_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity.</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 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/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_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="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>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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_InventoryDisclosureAbstract', window );"><strong>Inventories [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_InventoryDisclosureTextBlock', window );">Inventories</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">3. Inventories</div>

<div><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of inventories are:</div>

<div><br/>
    </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;">Raw materials and purchased component parts</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,413</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,432</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Finished goods</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,748</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,327</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">16,161</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">17,759</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="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_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</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 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/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_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>27
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fixed assets, net<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets, net [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_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Fixed assets, net</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">4. Fixed assets, net</div>

<div><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of fixed assets, net are:</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Tooling, machinery and equipment</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,828</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,562</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Furniture and office equipment</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,078</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,078</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Computer software and equipment</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,412</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,190</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Leasehold improvements</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,895</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,895</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">21,213</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">20,725</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;">Less: Accumulated depreciation and amortization</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(19,468</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(18,646</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,745</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,079</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Construction in-process</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">73</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">342</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,818</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,421</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</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 360<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/360/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-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_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.1</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">12 Months Ended</th>
</tr>
<tr><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_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Intangible assets, net [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">
<div>
   <span style="font-weight: bold; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">5. Intangible assets, net </span></div>

<div style="text-align: justify;"><br/>
    </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:</span></div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left;">&#160;</div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross Amount</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accumulated Amortization</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross Amount</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accumulated Amortization</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Purchased technology</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,591</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,591</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,591</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,503</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Patents</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,518</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>


</table>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Amortization expense was $88 thousand and
      $154 thousand in 2024 and
      2023, respectively.&#160; We currently do not anticipate any amortization expense for each of the next five years ending December 31.<br/>
    </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>29
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued liabilities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_PayablesAndAccrualsAbstract', window );"><strong>Accrued liabilities [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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accrued liabilities</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">6. Accrued liabilities</div>

<div style="text-align: justify;"><br/>
    </div>

<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of accrued liabilities are:</div>

<div style="text-align: left;"><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Salaries and compensation related</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,786</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,455</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Taxes</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">725</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">870</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Professional and consulting</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">200</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">161</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">542</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">461</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,253</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">4,947</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accounts payable and accrued liabilities at the end of the reporting 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 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://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 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 720<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483384/720-30-45-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(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_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="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>30
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment reporting<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_SegmentReportingAbstract', window );"><strong>Segment reporting [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_SegmentReportingDisclosureTextBlock', window );">Segment reporting</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">7. Segment reporting</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"><br/>
      </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We apply the provisions of the Financial Accounting Standards Board (&#8220;FASB&#8221;) Accounting Standards Codification (&#8220;ASC&#8221;) 280, &#8220;Segment Reporting.&#8221; We
        view our operations and manage our business as one segment: the design, development and marketing of software-driven technology and
        printing solutions and the sale of printer and terminal related software, services, supplies and spare parts. Factors used to identify TransAct&#8217;s single operating segment include the similar design, construction and functionality of our products
        and services, the combined research &amp; development team that supports the entire company, a combined assembly, production and supply chain logistics process used to construct our products and services and a similar class of customers within our
        core markets (distributors, resellers, original equipment manufacturers (&#8220;OEMs&#8221;) and end users). Other factors used to identify TransAct&#8217;s single operating segment include the organizational structure of the Company and the financial information
        available for evaluation by the chief operating decision-maker (&#8220;CODM&#8221;) in making decisions about how to allocate resources and assess performance. The Company&#8217;s chief operating decision makers, who are the Company&#8217;s chief executive officer and the
        Company&#8217;s chief financial officer, utilize a consolidated approach to assess the performance of and allocate resources to the business.</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"><br/>
      </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We generally use measures of sales, gross margin percentage, net income, earnings before interest, taxes, depreciation and amortization (&#8220;EBITDA&#8221;) and
        adjusted EBITDA to make operational and strategic decisions. These financial measures are compared to budgeted and forecasted amounts by the CODMs on a regular basis to measure our progress towards our strategic plans, pursue product enhancements,
        conduct research and development initiatives and make any other necessary overall strategic changes to the business.<br/>
      </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"><br/>
      </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following table provides the operating financial results of our segment:</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
              <div style="text-align: center;">December 31,</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom">
              <div style="text-align: justify; font-style: italic;">(In thousands)</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center;">2024</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center;">2023</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Revenues</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>43,384</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>72,631</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Cost of materials sold</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>15,268</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>25,990</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Compensation costs</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>18,323</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>20,004</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Professional services</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>3,493</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>4,965</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Occupancy costs</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,477</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,485</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Marketing expenses</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,109</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,715</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>IT expenses</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,255</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,203</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Severance expense</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>75</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,785</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Depreciation and amortization</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,037</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,489</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Other segment expenses<sup>(1)</sup></div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>4,973</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>8,289</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>(3,626</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>5,706</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Interest income</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>469</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>55</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Interest expense</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>(322</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>(310</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Other (expense) income</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>(89</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>452</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">
              <div>
                <div>Income tax benefit (expense)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>(6,295</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>(1,155</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 4px;" valign="bottom">
              <div>
                <div>Net (loss) income</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>(9,863</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>4,748</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
        <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1)</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;">Other Segment expenses included in Segment net income primarily include other cost of goods sold, other administrative costs and engineering costs.<br/>
                </div>
              </td>

  </tr>


</table>
      </div>

<div><br/>
        </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">A reconciliation of net (loss) income to EBITDA and adjusted EBITDA follows:</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
              <div style="text-align: center;">Years Ended December 31,</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="text-align: justify; font-style: italic;">(In thousands)</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
              <div style="text-align: center;">2024</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
              <div style="text-align: center;">2023</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Net (loss) income</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>(9,863</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>4,748</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Interest (income) expense, net</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>(147</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>255</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Income tax expense</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>6,295</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,155</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;" valign="bottom">
              <div>
                <div>Depreciation and amortization</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
              <div>
                <div>1,037</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
              <div>
                <div>1,489</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>EBITDA</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>(2,678</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>7,647</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Share-based compensation</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,157</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>860</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div style="font-size: 8pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Adjusted EBITDA</span><sup><span style="font-family: 'Times New Roman'; font-size: 10pt;">(1)</span></sup></div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div>(1,521</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div>8,507</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
          <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1)</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
                  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;">Adjusted EBITDA in 2023 includes a $1.5 million severance charge related to the
                      resignation of the Company&#8217;s former Chief Executive Officer.</span></div>
                </td>

  </tr>


</table>
          </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Please see Note 14 for net sales and long-lived assets by geographic area.</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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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 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 2: 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 (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: 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 4: 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 5: 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 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<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 47<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<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 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<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 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<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 47<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<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 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<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 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<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 34<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-34<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 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-15<br><br>Reference 18: 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 19: 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 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/280/tableOfContent<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26<br><br>Reference 22: 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> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 25: 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 (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<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_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Retirement savings plan<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement savings plan [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_CompensationAndEmployeeBenefitPlansTextBlock', window );">Retirement savings plan</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">8. Retirement savings plan</div>

<div style="text-align: justify;"><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We maintain a 401(k) plan under which all full-time employees are eligible to participate at the beginning of the month immediately following their date
      of hire.&#160; We match employees&#8217; contributions at a rate of 50% of employees&#8217; contributions up to the first 6% of the employees&#8217; compensation contributed to the 401(k) plan.&#160; Our matching contributions, net of applied forfeitures, were $364 thousand and $230 thousand in 2024 and 2023, respectively.</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_CompensationAndEmployeeBenefitPlansTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans.</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 710<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/710/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 712<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/712/tableOfContent<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 715<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/715/tableOfContent<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/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_CompensationAndEmployeeBenefitPlansTextBlock</td>
</tr>
<tr>
<td style="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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="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>32
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Borrowings<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DebtDisclosureAbstract', window );"><strong>Borrowings [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 );">Borrowings</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">9. Borrowings</div>

<div style="text-align: justify;"><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;">Credit Facility</div>

<div><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">On March 13, 2020, we entered into the
          Loan and Security Agreement (the &#8220;Loan Agreement&#8221;) governing a credit facility (the &#8220;Siena Credit Facility&#8221;) with Siena Lending Group LLC (the &#8220;Lender&#8221;).&#160; The Siena Credit Facility provides for a revolving credit line of up to $10.0 million and was originally scheduled to expire on March 13, 2023, prior to being extended, as discussed below. Borrowings under the Siena Credit Facility bear a floating rate of interest equal to the greatest of (i) the prime rate plus 1.75%, (ii) the federal funds rate plus 2.25%, and (iii) 6.50%. The total deferred financing costs related to expenses incurred to complete the Siena Credit Facility were $245 thousand which were reported as &#8220;Other current assets&#8221; in current assets and &#8220;Other assets&#8221; in non-current assets in the Consolidated Balance
          Sheets. We also pay a fee of 0.50% on unused borrowings under the Siena Credit Facility. Borrowings under the Siena Credit Facility
          are secured by a lien on substantially all the assets of the Company. Borrowings under the Siena Credit Facility are subject to a borrowing base based on 85% of eligible accounts receivable plus the lesser of (a) $5.0 million and
          (b) 50% of eligible raw material and 60%
          of finished goods inventory.&#160; <br/>
        </span> </div>

<div style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>

<div> <span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">The Siena Credit Facility imposes a
          financial covenant on the Company and restricts, among other things, our ability to incur additional indebtedness and create other liens. On July 21, 2021, the Company entered into an amendment (&#8220;Siena Credit Facility Amendment No. 1&#8221;) to the
          Loan Agreement. Siena Credit Facility Amendment No. 1 changed the financial covenant under the Siena Credit Facility from a minimum EBITDA covenant to an excess availability covenant requiring that the Company maintain excess availability of at
          least $750 thousand under the Siena Credit Facility, tested as of the end of each calendar month, beginning with the calendar month
          ended July 31, 2021. From July 31, 2021 through December 31, 2024, we remained in compliance with our excess availability covenant. <br/>
        </span><br/>
      </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">On July 19, 2022, the Company and the Lender entered into Amendment No. 2 (&#8220;Siena Credit Facility Amendment No. 2&#8221;) to the Loan Agreement as amended
      by Siena Credit Facility Amendment No. 1. Also on July 19, 2022, the Company and the Lender entered into an Amended and Restated Fee Letter (the &#8220;Amended Fee Letter&#8221;) in connection with Siena Credit Facility Amendment No. 2. Siena Credit Facility
      Amendment No. 2 did not modify the aggregate amount of the revolving commitment or the interest rate applicable to the loans. Among other changes, Siena Credit Facility Amendment No. 2 extended the maturity date from March 13, 2023 to March 13, 2025.
      In addition, the Amended Fee Letter required the Company to maintain outstanding borrowings of at least $2.25 million in principal amount
      or, during any period during which the Lender had control of the Company&#8217;s deposit account in accordance with the Loan Agreement, as amended by Siena Credit Facility Amendment No. 2, to pay interest on at least $2.25 million in principal amount of outstanding borrowings, whether or not such amount of loans was actually outstanding.<br/>
      <br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">On May 1, 2023, the Company and the Lender agreed to a letter amendment (Amendment No. 3) to the Loan Agreement. Prior to such amendment, Section 7.1(m)
      of the Loan Agreement required that any successor to the Company&#8217;s former Chief Executive Officer be reasonably acceptable to the Lender. This amendment confirmed that Mr. John Dillon, the Company&#8217;s current Chief Executive Officer, is an acceptable
      successor, and applied the same requirement to any future successor to Mr. Dillon as Chief Executive Officer.</div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">On November 20, 2024, the Company and the Lender entered into Amendment No. 4 (&#8220;Siena Credit Facility Amendment No. 4&#8221;) to the Loan Agreement.&#160; The
      changes to the Loan Agreement provided for in Siena Credit Facility Amendment No. 4 include, among other things, the extension of the maturity date from March 13, 2025 to March 31, 2027. Also on November 20, 2024, the Company and the Lender entered
      into a Second Amended and Restated Fee Letter (the &#8220;Second Amended Fee Letter&#8221;) in connection with Siena Credit Facility Amendment No. 4. The Second Amended Fee Letter increases the minimum borrowing amount from $2.25 million to $3.0 million, such that the
      Company is required to either maintain outstanding borrowings of at least $3.0 million in principal amount, or during any period during
      which the Lender has control of the Company&#8217;s deposit account in accordance with the Loan Agreement, as amended by Siena Credit Facility Amendment No. 4, to pay interest on at least $3.0 million principal amount of loans, whether or not such amount of loans is actually outstanding. The Second Amended Fee Letter also extends the dates before which a prepayment and
      termination of the Loan Agreement requires the Company to pay to the Lender an early payment/termination premium, providing for (i) a two percent
      premium for prepayment on or prior to March 31, 2025, (ii) a one percent premium for prepayment from April 1, 2025 through March 31, 2026,
      and no premium for prepayment thereafter. <br/>
      <br/>
      As of December 31, 2024 and 2023, we had $3.0 million and $2.3 million, respectively, of outstanding borrowings under the Siena Credit Facility at interest rates of 9.25% and 10.25%, respectively.&#160; We had $3.2 million of net borrowing capacity available under the Siena Credit Facility at December 31, 2024.<br/>
    </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_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 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 2: 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 3: 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 4: 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 5: 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 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 (a)(1)<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)<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 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 9: 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 10: 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 11: 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 12: 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 13: 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 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> -Subparagraph (i)<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 1C<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<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 1C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<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 (c)<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 1E<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<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 1I<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<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 1I<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<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 (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>33
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock incentive plans [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 );">Stock incentive plans</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">10. Stock incentive plans</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Stock incentive plans</span><span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;">.</span><span style="font-family: 'Times New Roman'; font-size: 10pt;">&#160; We currently have two
        stock incentive plans: the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, which provide for awards to executives, key employees, directors and consultants.&#160; The plans generally provide for awards in the form of: (i) incentive stock
        options, (ii) non-qualified stock options, (iii) restricted stock, (iv) restricted stock units (which may include performance-based vesting), (v) stock appreciation rights or (vi) limited stock appreciation rights.&#160; Awards granted under these plans
        have exercise prices equal to 100% of the fair market value of the common stock at the date of grant.&#160; Awards granted have a ten-year term and generally vest over a two-year
        to four-year period, unless automatically accelerated for certain defined events.&#160; As of May 2014, no new awards may be made under the
        2005 Equity Incentive Plan.&#160; Under our 2014 Equity Incentive Plan, as amended in May 2023, we are authorized to grant awards of up to 2.9
        million shares of TransAct common stock.&#160; At December 31, 2024, 655,672 shares of common stock remained available for issuance under the 2014 Equity Incentive Plan.</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Under the assumptions indicated below, the weighted-average per share fair value of stock option grants for 2024 and 2023 was $3.98 and $4.16, respectively.&#160; We also
      issued restricted stock units for certain executives and directors that vest over a specified period of time, and in some instances require achieving certain performance metrics.&#160; The weighted-average per share fair value of these restricted stock
      units was $5.81 and $7.21 in
      2024 and 2023,
      respectively. The per share fair value of restricted stock units is the trading value of the stock on the date of the grant.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2024 and 2023 and a discussion of our
      methodology for developing each of the assumptions used in the valuation model:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Years ended December 31,</div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">2024</div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">2023</div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Expected option term (in years)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">6.1</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">7.0</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Expected volatility</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">57.7</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">55.6</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Risk-free interest rate</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">4.3</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">4.2</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Dividend yield</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">0.0</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">0.0</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Expected Option Term</span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> - This is the weighted average period of time over which the options granted are expected to remain outstanding giving consideration to our historical exercise patterns.&#160; Options granted
        have a maximum term of ten years and an increase in the expected term will increase compensation expense.</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Expected Volatility</span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> &#8211; The stock volatility for each grant is measured using the weighted average of historical daily price changes of our common stock over the most recent period approximately equal to the expected option term of
        the grant.&#160; An increase in the expected volatility factor will increase compensation expense.</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Risk-Free Interest Rate</span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> - This is the U.S. Treasury rate in effect at the time of grant having a term approximately equal to the expected term of the option.&#160; An increase in the risk-free interest rate will
        increase compensation expense.</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </span></div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;">Dividend Yield</span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> &#8211;The dividend yield is calculated by dividing the annual dividend declared per common share by the weighted average market value of our common stock on the date of grant. An increase in the dividend yield will
        decrease compensation expense.</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We recorded $1.2 and $0.9 million of share-based compensation expense for 2024
      and 2023, respectively, included primarily in general and administrative expense in our Consolidated Statements of Operations.&#160; We also
      recorded income tax benefits of $0.3 million in 2024 and $0.2 million in&#160;2023, related to such share-based compensation.&#160; At December 31,
      2024, these benefits are recorded as a deferred tax asset in the Consolidated Balance Sheets.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: left;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, as amended, is summarized below:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Stock Options</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Restricted Stock Units</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Number of Shares</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);"> Average Price*</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Number of Units</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Average Price**</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0);">Outstanding at December 31, 2023</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">1,314,475</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">8.82</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">184,536</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">7.76</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Granted</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">179,700</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">6.80</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">267,024</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">5.81</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Exercised</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">(74,995</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">7.41</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Forfeited</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">(7,750</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">7.11</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Expired</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">(109,312</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">10.71</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0);">Outstanding at December 31, 2024</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">1,377,113</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">8.41</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">376,565</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">6.44</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">*</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted average exercise price per share</div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">**</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted average grant stock price per share</div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">
    </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2024:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
            </span></td>

    <td colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity Awards Vested and Expected to Vest</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity Awards That Are Exercisable</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Awards</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Average Price*</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Aggregate </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Intrinsic </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Value</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining Term**</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Awards</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Average Price*</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Aggregate </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Intrinsic </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Value</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining Term**</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Stock Options</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,377,113</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">8.41</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">4.1</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">973,963</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">8.96</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2.2</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 20%;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Restricted stock units</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">376,565</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,540</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2.1</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">*</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted average exercise price per share</div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">**</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted-average contractual remaining term in
              years</div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Shares that are issued upon exercise of employee stock awards are newly issued shares and not issued from treasury stock.&#160; As of December 31, 2024, unrecognized compensation cost related to non-vested equity awards granted under our stock incentive plans is approximately $2.7 million, which is expected to be recognized over a weighted average period of 2.7 years.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The total fair value of awards vested was $0.9
      million and $1.3 million during the years ended December 31, 2024 and 2023, respectively.&#160; The total intrinsic value (which
      is the amount by which the stock price exceeded the exercise price on the date of exercise) of stock options exercised during the years ended December 31, 2024
      and 2023 was zero and $3 thousand, respectively, and cash received from option exercises was zero in both 2024 and 2023. Zero and 1,875 stock options were exercised during the year ended December 31, 2024
      and 2023, respectively. We recorded zero
      realized tax provision in 2024 and 2023
      from equity-based awards, related to options exercised.</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/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 2: 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 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 (a)<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 (h)(2)<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 (h)(2)(i)<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 (l)<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>34
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_IncomeTaxDisclosureAbstract', window );"><strong>Income taxes [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_IncomeTaxDisclosureTextBlock', window );">Income taxes</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">11. Income taxes</div>

<div><br/>
  </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of the income tax expense are as follows:</div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
          <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
          <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Current:</div>
        </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(154</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">37</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">51</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">108</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">85</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(9</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">135</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred:</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">5,991</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">825</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">293</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">132</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">20</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">63</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,304</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,020</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Income tax expense<br/>
            </div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,295</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,155</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"> <br/>
    </span></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);">Our effective tax rates were </span>(176.4%)<span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"> and </span>19.6%<span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"> for </span>2024<span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"> and </span>2023<span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);">, respectively.</span> Our 2024 tax rate was impacted by an income tax charge of $7.3 million related to the write down of our U.S. net deferred income tax asset as more fully described below.</div>

<div><br/>
  </div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">At December 31, 2024, we have $276 thousand of federal net operating loss carryforwards which can be carried over indefinitely, $135 thousand of state net operating loss carryforwards which expire in various years,&#160; $903
      thousand of R&amp;D credit carryforwards which can be carried forward for 20 years, and no state tax credit carryforwards.&#160; All of these items have a full valuation allowance against them as of December 31, 2024.&#160; Foreign income before taxes was $79 thousand and $322 thousand in&#160; 2024 and 2023, respectively.</div>

<div><br/>
  </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our
    deferred tax assets and liabilities were comprised of the following:</div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
          <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
          <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax assets:</div>
        </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal net operating losses</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">276</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign net operating losses</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">802</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">733</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State net operating losses</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">135</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">84</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accrued severance</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">20</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">165</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Capitalized R&amp;D expenses</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,708</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,127</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Inventory reserves</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,047</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">896</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">31</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Warranty reserve</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">29</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">24</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock compensation expense</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">853</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">790</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other accrued compensation</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">165</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">404</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">R&amp;D credit carryforward</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">903</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">695</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div style="margin-left: 9pt; text-indent: 0pt;">Other Assets<br/>
          </div>
        </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">379</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">360</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross deferred tax assets</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,324</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,309</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Valuation allowance</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(8,103</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(719</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -18pt; margin-left: 45pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net deferred tax assets</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">221</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,590</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax liabilities:</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Depreciation and amortization<br/>
            </div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">179</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">237</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">42</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">49</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net deferred tax liabilities</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">221</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">286</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total net deferred tax assets</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,304</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">As of December 31, 2024 and 2023, we had $8.1 million and $719 thousand, respectively,
    of valuation allowance against our deferred income tax assets. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:</div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
          <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">719</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">656</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Additions charged to income tax provision</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,384</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">63</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,103</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">719</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Valuation allowances are recorded to reduce deferred tax assets when it is more likely than not (greater than 50%) that a tax benefit will not be realized.&#160; In
      evaluating the need for a valuation allowance, management considers all potential sources of taxable income, including income available in carryback periods, future reversals of taxable temporary differences, projections of taxable income, income
      from tax planning strategies, as well as all available positive and negative evidence.&#160; Positive evidence includes factors such as a history of profitable operations, projections of future profitability within the carryforward period, including any
      potential tax planning strategies.&#160; Negative evidence includes items such as cumulative losses and projections of future losses.&#160; Upon changes in facts and circumstances, management may conclude that deferred tax assets for which no valuation
      allowance is currently recorded may not be realized, resulting in a charge to establish a valuation allowance.&#160; Existing valuation allowances are re-examined under the same standards of positive and negative evidence. If it is determined that it is
      more likely than not that a deferred tax asset will be realized, the appropriate amount of the valuation allowance, if any, is released.&#160; Deferred tax assets and liabilities are also re-measured to reflect changes in underlying tax rates due to law
      changes and the granting and lapse of tax holidays.</div>

<div><br/>
    </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">In 2024, TransAct recognized a $7.3 million discrete
      income tax charge for a valuation allowance on the full value of the net deferred tax assets in the United States. After weighing all available positive and negative evidence, as described above, management determined that it was no longer more
      likely than not that TransAct will realize the tax benefit of these deferred tax assets. This was mainly driven by&#160; a cumulative taxable loss experienced over the previous three fiscal years (2022 through 2024) combined with a near term outlook of
      future taxable losses.&#160; The need for this valuation allowance will be assessed on a continuous basis in future periods and, as a result, a portion, or all of the allowance, may be reversed based on changes in facts and circumstances.</div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:</span></div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal statutory rate</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">21.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">21.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">R&amp;D credit</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8.8</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(5.9</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">Foreign-derived intangible income deduction <br/>
        </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#8211;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">(1.7</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">)</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock award excess tax benefit</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.7</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.4</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State income taxes, net of federal income taxes</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2.5</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Business meals and entertainment</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.4</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.3</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Executive compensation limitation</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.6</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Uncertain tax positions</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.2</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.5</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock option cancellations</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(2.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.6</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Change in valuation allowance<br/>
            </div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(206.9</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.3</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Effective tax rate</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(176.4</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">19.6</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </td>

  </tr>


</table>

<div><br/>
  </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We had $203 and $197 thousand of total gross unrecognized tax benefits at December 31, 2024 and 2023, respectively that, if recognized, would favorably affect the
    effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the
    gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:</div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
          <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">197</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">142</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Tax positions taken during the current period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">31</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">83</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">Reductions for tax positions in prior years <br/>
        </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">(25</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">)</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#8211;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Lapse of statute of limitations</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">&#8211;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(28</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">203</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">197</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
  </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We recognize interest and penalties related to uncertain tax positions in the income tax provision.</div>

<div><br/>
  </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We are subject to U.S. federal income tax as well as income tax of certain state and foreign jurisdictions.&#160; We have substantially concluded all U.S.
    federal income tax, state and local, and foreign tax matters through 2019.&#160; However, our federal tax returns for the years 2021 through 2024 remain open to examination. Various state and foreign tax jurisdiction tax years remain open to examination as
    well, though we believe that any additional assessment would be immaterial to the Consolidated Financial Statements.</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_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="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_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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 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 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12C<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12B<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 270<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477891/740-270-50-1<br><br>Reference 6: 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.5.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-13<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(h)(2))<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 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/740/tableOfContent<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-14<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-21<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 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<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/2147482603/740-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_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_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 );">Earnings per share</a></td>
<td class="text">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">12. Earnings per share</div>

<div><br/>
    </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Earnings per share was computed as follows (in thousands, except per share amounts):</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income<br/>
              </div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(9,863</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">4,748</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Shares:</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic:&#160; Weighted average common shares outstanding</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,997</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,951</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">70</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted:&#160; Weighted average common and common equivalent shares outstanding</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,997</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,021</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income per common share:</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.99</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.48</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.99</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.47</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </td>

  </tr>


</table>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, restricted
      stock units and performance stock awards, when the average market price of the common stock is lower than the exercise price of the related stock award during the period.&#160; These outstanding stock awards are not included in the computation of diluted
      earnings per share because the effect would be anti-dilutive.&#160; Furthermore, in periods when a net loss is reported, such as in 2024, basic and diluted net loss per common share are calculated using the same method.&#160; Anti-dilutive option awards
      excluded from the computation of earnings per dilutive share were 1.4 million and 1.1 million at December 31, 2024 and 2023, respectively. Anti-dilutive restricted stock awards excluded from the computation of earnings per dilutive share were 0.3 million and zero at December 31, 2024
      and 2023, respectively. Anti-dilutive performance stock awards excluded from the computation of earnings per dilutive share were 0.1
      million and zero at December 31, 2024 and 2023, respectively.</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>36
<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.1</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">12 Months Ended</th>
</tr>
<tr><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_EquityAbstract', window );"><strong>Stock repurchase program [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_TreasuryStockTextBlock', window );">Stock repurchase program</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">13. Stock repurchase program</div>

<div style="text-align: justify;"><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">We use the cost method to account for treasury stock purchases, under which the price paid for the stock is charged to the treasury stock account.&#160;
      Repurchases of our common stock are accounted for as of the settlement date.&#160; During 2024 and 2023, we did not repurchase any shares of our common stock.&#160;
      From January 1, 2005 through December 31, 2019, we repurchased a total of 4,044,842 shares of common stock for $32.1 million, at an average price of $7.94
      per share.</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_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_TreasuryStockTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of 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> -Topic 505<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/505-30/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_TreasuryStockTextBlock</td>
</tr>
<tr>
<td style="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>37
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Geographic area information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_SegmentsGeographicalAreasAbstract', window );"><strong>Geographic area information [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_tact_GeographicAreaInformationTextBlock', window );">Geographic area information</a></td>
<td class="text">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">14. Geographic area information</div>

<div><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the
      location of the customer and asset.</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales:</div>
          </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">33,485</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">58,060</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">International</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,899</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">14,571</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">43,384</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">72,631</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Fixed assets, net:</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">831</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">945</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">International</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">987</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,476</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,818</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,421</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div> <br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Sales to international customers were 23%
      and 20% of total sales in 2024
      and 2023, respectively.&#160; Sales to Europe represented 55% and 64%, sales to the Pacific Rim (which includes Australia and Asia) represented 34% and 29%, and sales to Canada
      represented 10% and 4% of
      total international sales in 2024 and 2023,
      respectively.&#160; International long-lived assets consist of net fixed assets located at our foreign subsidiary in the UK, as well as our contract manufacturer in Thailand.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_GeographicAreaInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 regarding operations by geographic area.</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;">tact_GeographicAreaInformationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_SegmentsGeographicalAreasAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentsGeographicalAreasAbstract</td>
</tr>
<tr>
<td style="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>38
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_LeasesAbstract', window );"><strong>Leases [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_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">15. Leases</div>

<div><br/>
    </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;">Operating lease expense was $</span>1.0 million and $1.1<span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"> million for the years ended December 31, </span>2024<span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"> and </span>2023<span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;">,
        respectively, and is reported as </span>&#8220;Cost of sales,&#8221; &#8220;Engineering, design and product development expense,&#8221; &#8220;Selling and marketing expense,&#8221; and &#8220;General and administrative expense&#8221; in the Consolidated Statements of Operations.&#160; <span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;">Operating costs include short-term lease costs.</span></div>

<div><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Operating cash outflows from leases</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,022</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,013</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><br/>
      </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following summarizes additional information related to our leases:</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Weighted average remaining lease term (in years)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1.2</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1.7</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Weighted average discount rate</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7.7</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">4.4</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </td>

  </tr>


</table>

<div><br/>
      </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The maturity of the Company&#8217;s operating lease liabilities are as follows (in thousands):</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31, 2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2025</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,014</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2026</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">237</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total undiscounted lease payments</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,251</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Less imputed interest</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">65</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total lease liabilities</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,186</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease 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/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/842-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_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="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>39
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Quarterly results of operations (unaudited)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly results of operations (unaudited) [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_QuarterlyFinancialInformationTextBlock', window );">Quarterly results of operations (unaudited)</a></td>
<td class="text">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">16. Quarterly results of operations (unaudited)</div>

<div><br/>
    </div>

<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Our quarterly results of operations for 2024
      and 2023 are as follows:</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Quarter Ended</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands, except per share amounts)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">March 31</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">June 30</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">September 30</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024:</div>
          </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,687</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">11,599</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,867</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,231</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross profit</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">5,624</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,110</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">5,227</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">4,521</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net loss</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,036</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(319</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(551</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(7,957</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net loss per common share:</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.10</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.03</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.06</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.79</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.10</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.03</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.06</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.79</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023:</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">22,270</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">19,906</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">17,190</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">13,265</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross profit</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">12,255</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,858</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,916</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,371</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net income (loss)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,139</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">765</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">906</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(62</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net income (loss) per common share:</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.32</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.08</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.09</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.01</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.31</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.08</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.09</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.01</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </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_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="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_QuarterlyFinancialInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the 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 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1B<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 270<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/270/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_QuarterlyFinancialInformationTextBlock</td>
</tr>
<tr>
<td style="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>40
<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.1</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">12 Months Ended</th>
</tr>
<tr><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_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">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-weight: bold;">17. Related party transactions</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">One of the Company&#8217;s directors serves as President and Chief Executive Officer of The One Group Hospitality, Inc.&#160; The
        Company sold various food service technology products to The One Group Hospitality, Inc. on an arms&#8217; length basis totaling $117 thousand
        and $246 thousand in 2024 and 2023, respectively.&#160; The Company&#8217;s accounts receivable from The One Group Hospitality, Inc. amounted to $5 thousand and $34 thousand at December
        31, 2024 and 2023, respectively.</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_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 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 2: 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 3: 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 4: 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 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 (e)<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 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 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>41
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent events<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_SubsequentEventsAbstract', window );"><strong>Subsequent events [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_SubsequentEventsTextBlock', window );">Subsequent events</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">18. Subsequent events</div>

<div style="text-align: justify;"><br/>
    </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">The Company has evaluated all events or transactions that occurred up to the date the consolidated financial statements were available to issue.&#160; Based upon this review,
      the Company did not identify any subsequent events that would have required adjustment or disclosure in the consolidated financial statements.</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_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="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_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</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 855<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/855/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<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/2147483399/855-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_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="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>42
<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.1</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>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_ecd_InsiderTradingArrLineItems', window );"><strong>Insider Trading Arrangements [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_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_InsiderTradingArrLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_InsiderTradingArrLineItems</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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cybersecurity Risk Management and Strategy Disclosure<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract', window );"><strong>Cybersecurity Risk Management, Strategy, and Governance [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_cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock', window );">Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Risk Management and Strategy</div>

<div><br/>
      </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Company&#8217;s Board of Directors recognizes the critical importance of maintaining the trust and confidence of our customers, clients, business
        partners and employees. The Board of Directors is actively involved in oversight of the Company&#8217;s risk management program, and cybersecurity represents an important component of the Company&#8217;s overall approach to enterprise risk management (&#8220;ERM&#8221;).
        <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Company&#8217;s cybersecurity policies, standards, processes and practices are fully integrated into the Company&#8217;s ERM program and are based on recognized frameworks established by the National Institute of Standards and Technology, the International Organization for Standardization and other applicable industry standards. In general, the
        Company seeks to address cybersecurity risks through a comprehensive, cross-functional approach that is focused on preserving the confidentiality, security and availability of the information that the Company collects and stores by identifying,
        preventing and mitigating cybersecurity threats and effectively responding to cybersecurity incidents when they occur.</span> As one of the critical elements of the Company&#8217;s overall ERM approach, the Company&#8217;s cybersecurity
        program is focused on the following key areas:</div>

<div style="font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Governance:</span> As discussed in more detail under the heading &#8220;Governance,&#8221; the Board of Directors&#8217; oversight of cybersecurity risk management is supported by the Audit Committee of the Board of
                  Directors (the &#8220;Audit Committee&#8221;), which regularly interacts with the Company&#8217;s ERM function, the Company&#8217;s Vice President of Information Technology, other members of management and relevant management committees and councils, including
                  management&#8217;s Sarbanes-Oxley &amp; Cybersecurity Steering Committee.</span></div>
            </td>

  </tr>


</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Collaborative Approach:</span> The Company has implemented a comprehensive, cross-functional approach to identifying, preventing and mitigating cybersecurity threats and incidents, while also
                  implementing controls and procedures that are designed to provide for the prompt and appropriate internal reporting of certain cybersecurity incidents, either in the form of a single unauthorized occurrence or a series of unauthorized
                  occurrences, so that decisions regarding the public disclosure and reporting of such incidents can be made by management in a timely manner.</span></div>
            </td>

  </tr>


</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Technical Safeguards:</span> The Company deploys technical safeguards that are designed to protect the Company&#8217;s information systems from cybersecurity threats, including firewalls, intrusion
                  prevention and detection systems, anti-malware functionality and access controls, which are evaluated and improved through vulnerability assessments and cybersecurity threat intelligence.</span></div>
            </td>

  </tr>


</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Incidence Response and Recovery Planning:</span> The Company has established and maintains comprehensive incident response and recovery plans intended to fully and timely address the Company&#8217;s
                  response to a cybersecurity incident, and such plans are tested and evaluated on a regular basis.</span></div>
            </td>

  </tr>


</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Third-Party Risk Management:</span> The Company maintains a comprehensive, risk-based
                  approach to identifying and overseeing cybersecurity risks presented by third parties, including vendors, service providers and other external users of the Company&#8217;s systems, as well as the systems of third parties that could adversely
                  impact our business in the event of a cybersecurity incident affecting those third-party systems.</span></div>
            </td>

  </tr>


</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
            </td>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;">&#8226;</td>

    <td style="width: auto; vertical-align: top; text-align: justify;">
              <div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><span style="font-weight: bold;">Education and Awareness:</span> The Company provides regular, mandatory training for personnel regarding cybersecurity threats as a means to equip the Company&#8217;s personnel with effective tools to
                  proactively address cybersecurity threats and prevent incursions and to communicate the Company&#8217;s evolving information security policies, standards, processes and practices.&#160; Our awareness program includes assessment of our personnel&#8217;s
                  preparedness through regular phishing e-mail alerts, highlighted banners that warn about external senders, and tests administered to help the Company&#8217;s personnel interrogate, navigate around, and avoid clicking suspicious and unfamiliar
                  links from unknown senders.</span></div>
            </td>

  </tr>


</table>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"> <br/>
      </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Company engages in the periodic assessment and testing of the Company&#8217;s policies, standards, processes and practices that are designed to
        address cybersecurity threats and incidents. These efforts include a wide range of activities, including audits, assessments, tabletop exercises, threat modeling, vulnerability testing and other exercises focused on evaluating the effectiveness of
        our cybersecurity measures and planning. The Company engages third parties to perform assessments on our cybersecurity measures,
        including information security maturity assessments, audits and independent reviews of our information security control environment and operating effectiveness. The results of such assessments, audits and reviews are periodically reported to the
        Audit Committee and the Board of Directors, and the Company adjusts its cybersecurity policies, standards, processes and practices as appropriate based on the information provided by these assessments, audits and reviews.</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Cybersecurity threats, including as a result of previous cybersecurity incidents, have not materially affected, and are not reasonably likely to materially affect, the Company, including its business strategy, results of operations or financial condition.<br/>
      </div>
<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_cyd_CybersecurityRiskManagementProcessesIntegratedFlag', window );">Cybersecurity Risk Management Processes Integrated [Flag]</a></td>
<td class="text">true<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_cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock', window );">Cybersecurity Risk Management Processes Integrated [Text Block]</a></td>
<td class="text"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Company&#8217;s cybersecurity policies, standards, processes and practices are fully integrated into the Company&#8217;s ERM program and are based on recognized frameworks established by the National Institute of Standards and Technology, the International Organization for Standardization and other applicable industry standards. In general, the
        Company seeks to address cybersecurity risks through a comprehensive, cross-functional approach that is focused on preserving the confidentiality, security and availability of the information that the Company collects and stores by identifying,
        preventing and mitigating cybersecurity threats and effectively responding to cybersecurity incidents when they occur.</span><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_cyd_CybersecurityRiskManagementThirdPartyEngagedFlag', window );">Cybersecurity Risk Management Third Party Engaged [Flag]</a></td>
<td class="text">true<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_cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag', window );">Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]</a></td>
<td class="text">true<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_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag', window );">Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]</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_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock', window );">Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Text Block]</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Cybersecurity threats, including as a result of previous cybersecurity incidents, have not materially affected, and are not reasonably likely to materially affect, the Company, including its business strategy, results of operations or financial condition.<br/>
      </div>
<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_cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock', window );">Cybersecurity Risk Board of Directors Oversight [Text Block]</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-weight: bold; color: rgb(0, 0, 0); font-variant: normal; text-transform: none;">Governance</div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-weight: bold; color: rgb(0, 0, 0); font-variant: normal; text-transform: none;"> <br/>
      </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Board of Directors, in coordination with the Audit Committee, oversees the Company&#8217;s ERM process, including the management of risks arising
        from cybersecurity threats.</span> <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Board of Directors and the Audit Committee each receive presentations and
        reports on cybersecurity risks, which address a wide range of topics including recent developments, evolving standards, vulnerability assessments, third-party and independent reviews, the threat environment, technological trends and information
        security considerations arising with respect to the Company&#8217;s peers and third parties. The Board of Directors and the Audit Committee also receive prompt and timely information regarding any cybersecurity incident that meets established reporting
        thresholds or that management otherwise deems to be significant, as well as ongoing updates regarding any such incident until it has been addressed.</span> <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">On an annual basis, the Board of Directors and Audit Committee discuss the Company&#8217;s approach to cybersecurity risk management with the members of management&#8217;s Sarbanes-Oxley &amp; Cybersecurity Steering Committee, which includes the Company&#8217;s President and Chief Financial Officer (&#8220;CFO&#8221;) and Vice President of Information Technology.</span></div>

<div style="font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"><br/>
      </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Sarbanes-Oxley &amp; Cybersecurity Steering Committee</span><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">, in coordination with the Company&#8217;s outside legal counsel, works collaboratively across the Company and with various consultants to implement a program designed to protect the Company&#8217;s information systems from
        cybersecurity threats and to promptly respond to any cybersecurity incidents in accordance with the Company&#8217;s incident response and recovery plans.</span></span>
        <span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Vice President of Information Technology has served in various roles in information technology and information security for over 25 years and holds undergraduate and graduate degrees in
        computer science. As described in more detail above under the heading &#8220;Information about our Executive Officers,&#8221; the Company&#8217;s Chief Executive Officer and the President and CFO each hold undergraduate and graduate degrees in their respective
        fields, and each has over 30 years of experience managing risks at the Company and at similar companies, including risks arising from cybersecurity threats.</span></div>
<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_cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock', window );">Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]</a></td>
<td class="text"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Board of Directors, in coordination with the Audit Committee, oversees the Company&#8217;s ERM process, including the management of risks arising
        from cybersecurity threats.</span><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_cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock', window );">Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]</a></td>
<td class="text"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Board of Directors and the Audit Committee each receive presentations and
        reports on cybersecurity risks, which address a wide range of topics including recent developments, evolving standards, vulnerability assessments, third-party and independent reviews, the threat environment, technological trends and information
        security considerations arising with respect to the Company&#8217;s peers and third parties. The Board of Directors and the Audit Committee also receive prompt and timely information regarding any cybersecurity incident that meets established reporting
        thresholds or that management otherwise deems to be significant, as well as ongoing updates regarding any such incident until it has been addressed.</span><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_cyd_CybersecurityRiskRoleOfManagementTextBlock', window );">Cybersecurity Risk Role of Management [Text Block]</a></td>
<td class="text"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Sarbanes-Oxley &amp; Cybersecurity Steering Committee</span><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">, in coordination with the Company&#8217;s outside legal counsel, works collaboratively across the Company and with various consultants to implement a program designed to protect the Company&#8217;s information systems from
        cybersecurity threats and to promptly respond to any cybersecurity incidents in accordance with the Company&#8217;s incident response and recovery plans.</span><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_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag', window );">Cybersecurity Risk Management Positions or Committees Responsible [Flag]</a></td>
<td class="text">true<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_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock', window );">Cybersecurity Risk Management Positions or Committees Responsible [Text Block]</a></td>
<td class="text"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">On an annual basis, the Board of Directors and Audit Committee discuss the Company&#8217;s approach to cybersecurity risk management with the members of management&#8217;s Sarbanes-Oxley &amp; Cybersecurity Steering Committee, which includes the Company&#8217;s President and Chief Financial Officer (&#8220;CFO&#8221;) and Vice President of Information Technology.</span><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_cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock', window );">Cybersecurity Risk Management Expertise of Management Responsible [Text Block]</a></td>
<td class="text"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Vice President of Information Technology has served in various roles in information technology and information security for over 25 years and holds undergraduate and graduate degrees in
        computer science. As described in more detail above under the heading &#8220;Information about our Executive Officers,&#8221; the Company&#8217;s Chief Executive Officer and the President and CFO each hold undergraduate and graduate degrees in their respective
        fields, and each has over 30 years of experience managing risks at the Company and at similar companies, including risks arising from cybersecurity threats.</span><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_cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock', window );">Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]</a></td>
<td class="text"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The Sarbanes-Oxley &amp; Cybersecurity Steering Committee</span><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">, in coordination with the Company&#8217;s outside legal counsel, works collaboratively across the Company and with various consultants to implement a program designed to protect the Company&#8217;s information systems from
        cybersecurity threats and to promptly respond to any cybersecurity incidents in accordance with the Company&#8217;s incident response and recovery plans.</span></span><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_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag', window );">Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<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;">cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<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;">cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<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;">cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<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;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i: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_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph iii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph iii<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;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i: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_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<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;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection b<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<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;">cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskManagementProcessesIntegratedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<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;">cyd_CybersecurityRiskManagementProcessesIntegratedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i: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_cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<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;">cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<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;">cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i: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_cyd_CybersecurityRiskManagementThirdPartyEngagedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph ii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph ii<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;">cyd_CybersecurityRiskManagementThirdPartyEngagedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i: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_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection b<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 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;">cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i: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_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection b<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 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;">cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<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;">cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph ii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph ii<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;">cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskRoleOfManagementTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection c<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 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;">cyd_CybersecurityRiskRoleOfManagementTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</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_cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph iii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph iii<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;">cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i: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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<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.1</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">12 Months Ended</th>
</tr>
<tr><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_AccountingPoliciesAbstract', window );"><strong>Summary of significant 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_ConsolidationPolicyTextBlock', window );">Principles of consolidation</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Principles of consolidation: </span>The accompanying Consolidated Financial Statements include the
      audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">Certain amounts for prior years have been reclassified to conform to the current year presentation.</div>
<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">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Use of estimates</span><span style="font-weight: bold;">:</span> The preparation of Consolidated Financial
      Statements in conformity with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and
      disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.</div>
<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_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and cash equivalents</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Cash and cash equivalents</span><span style="font-weight: bold;">:</span> We consider all highly
      liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.</div>
<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_TradeAndOtherAccountsReceivablePolicy', window );">Accounts receivable and credit losses</a></td>
<td class="text">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>

<div style="text-align: justify;"><span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;">Accounts receivable and credit losses</span><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">: The Company records accounts receivable when the right to consideration becomes
          unconditional. We establish an allowance for expected credit losses to ensure trade receivables are valued appropriately. </span> </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"><br/>
        </span> </div>

<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"> </span></div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;">We are exposed to credit losses primarily through our net sales of products and services to our customers which are recorded as Accounts Receivable, net on the
        Consolidated Balance Sheets. We evaluate each customer&#8217;s ability to pay through assessing customer creditworthiness, historical experience and current economic conditions through a reasonable forecast period. Factors considered in our evaluation of
        assessing collectability and risk include: underlying value of any collateral or security interests, significant past due balances, historical losses and existing economic conditions including country and political risk. There can be no assurance
        that actual results will not differ from estimates or that consideration of these factors in the future will not result in an increase or decrease to the allowance for credit losses. We may require collateral or prepayment to mitigate credit risk.</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"> <br/>
      </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">We estimate expected credit losses of financial assets with similar risk characteristics. We determine an asset is impaired when our assessment identifies there is a
          risk that we will be unable to collect amounts due according to the contractual terms of the agreement. We monitor our ongoing credit exposure through reviews of customer balances against contract terms and due dates, current economic conditions
          and dispute resolution. Estimated credit losses are written off in the period in which the financial asset is no longer collectible.</div>

<div style="font-family: 'Times New Roman';">&#160;</div>

<div><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"> </span></div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"> <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"><span style="font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The following table summarizes the activity
          recorded in the allowance for expected credit losses related to accounts receivable:</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Years Ended December 31,</span></div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">768</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">351</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Additions charged to costs and expenses</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deductions</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(294</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(189</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">474</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">768</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</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_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Inventories:</span> Inventories are stated at the lower
        of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completion, disposal and transportation, historical usage and estimates of future
        demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.</span> </div>
<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_PropertyPlantAndEquipmentPolicyTextBlock', window );">Fixed assets</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Fixed assets:</span> Fixed assets are stated at cost.&#160; Depreciation is recorded using the
      straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is five years; machinery and equipment is ten years; furniture and office equipment is five years
      to ten years; and computer software and equipment is three years to seven years.&#160; Leasehold improvements are amortized over the shorter of the term of the
      lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is
      recognized.&#160; Depreciation expense was $0.9 and $1.3 million in 2024 and 2023, respectively.</div>
<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_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Leases:</span> We account for leases in accordance with ASC 842, &#8220;Leases&#8221; (&#8220;ASC 842&#8221;), which requires lessees to apply a
      dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on
      an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12
      months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as
      financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We elected certain practical expedients available under ASC 842 upon adoption. We applied the practical expedient for short-term leases. We have
      lease agreements that include lease and non-lease components, and we did not elect the practical expedients to combine these components for any of our leases.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing or sales-type
      leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#8220;Right-of-use assets, net&#8221; and &#8220;Lease liabilities&#8221; in our Consolidated Balance Sheets.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease
      payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company
      determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease
      right of use asset excludes lease incentives. Our leases have remaining lease terms of one year to three years, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets
      and liabilities reflect only the options we are reasonably certain that we will exercise.</div>
<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_GoodwillAndIntangibleAssetsPolicyTextBlock', window );">Goodwill and Intangible assets</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Goodwill and Intangible assets</span><span style="font-weight: bold;">:</span> We acquire
      businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#8220;Goodwill,&#8221;
      acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test
      to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to
      first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant
      events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test
      is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#8217;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may
      trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired
      assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment
      when appropriate. All of our finite lived intangible assets are fully amortized as of December 31, 2024.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">As of December 31, 2024, we have determined that no
      goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2024 when our annual review for impairment was performed.</div>
<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_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue recognition</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Revenue recognition:</span> We account for revenue in accordance with ASC Topic 606: Revenue
      from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance
      obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#8217;s transaction price is allocated to each distinct performance
      obligation and recognized as revenue when, or as, the performance obligation is satisfied.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the
      customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction
      price utilizing either the &#8220;expected value&#8221; method or the &#8220;most likely amount&#8221; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#8217;s judgment, it is probable
      that a significant future reversal of cumulative revenue under the contract will not occur.</div>

<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a
      point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and
      gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to
      the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#8217;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal
      acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as
      control of the product is transferred to the customer and our performance obligation is completed.</div>

<div style="text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it
      is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our
      food service technology terminals and maintenance agreements (including free one-year maintenance received by customers upon completion of
      EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to
      the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract
      period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#8220;standalone selling price&#8221; method to
      determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price
      discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment
      approach.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period
      of the cost to obtain a contract is less than 12 months.</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
    </div>

<div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Disaggregation of revenue</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our
      revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31, 2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;<span style="font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Food service technology</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">14,719</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,382</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">16,101</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">POS automation</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,361</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,361</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Casino and gaming</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">12,522</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">7,826</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">20,348</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">TransAct Services Group</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2,883</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">691</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,574</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total net sales</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">33,485</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">9,899</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">43,384</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Year Ended December 31, 2023</span></div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">&#160;</span><span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Food service technology</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15,159</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,149</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">16,308</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">POS automation</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6,805</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">117</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6,922</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Casino and gaming</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">28,715</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">12,477</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">41,192</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">TransAct Services Group</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">7,381</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">828</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">8,209</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total net sales</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">58,060</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">14,571</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">72,631</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Contract balances</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the
      customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included
      within &#8220;Accounts Receivable, net&#8221; and &#8220;Other Assets&#8221; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#8220;Accrued Liabilities&#8221; in current
      liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160;
      Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid
      software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2024, we recognized revenue of $1.1 million related to our contract liabilities as of December 31, 2023.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Net contract (liabilities) assets consist of the following:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;<span style="font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Unbilled receivables, current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">106</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">145</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Unbilled receivables, non-current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">32</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">120</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Customer pre-payments</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(164</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(155</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,107</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,079</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, non-current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(246</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(209</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Net contract (liabilities) assets</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,379</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,178</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
        </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Remaining performance obligations</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our
      customer.&#160; As of December 31, 2024, the aggregate amount of the transaction price allocated to remaining performance obligations was $6.3 million. The Company expects to recognize revenue on $6.0
      million of its remaining performance obligations within the next 12 months following December 31, 2024, $0.2 million within the next <span style="-sec-ix-hidden:Fact_070b19bc2e87417485287551ea3163d4">24</span> months
      following December 31, 2024 and the&#160;<span style="-sec-ix-hidden:Fact_e37ea88e93bd42529bfb23dbe89fa89f">balance</span> of these remaining performance obligations within the next <span style="-sec-ix-hidden:Fact_f50c8aea3ef443c8a2609b35c6a05cf4">36</span> months following December 31, 2024.</div>
<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_ConcentrationRiskCreditRisk', window );">Concentration of credit risk</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Concentration of credit risk:</span>&#160; Financial instruments that potentially expose us to
      concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Accounts receivable from customers representing 10% or more of total accounts receivable, net during the years ended December 31, 2024 and 2023 were as
      follows:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
              <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
                <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Light &amp; Wonder Gaming, Inc.</div>
              </div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International Gaming Technology (&#8220;IGT&#8221;) </div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">28</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Sales to customers representing 10% or more of total net sales during the years ended December 31, 2024 and 2023 were as follows:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Light &amp; Wonder Gaming, Inc.</div>
          </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">11</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">%</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">6</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">%</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">IGT</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </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_ResearchAndDevelopmentExpensePolicy', window );">Engineering, design and product development</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Engineering, design and product development:</span> Engineering, design and product
      development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $7.0 million and $9.4 million of research
      and development expenses in 2024 and 2023,
      respectively.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological
      feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in
      determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been
      included in cost of sales over the estimated life of the product.</div>
<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_AdvertisingCostsPolicyTextBlock', window );">Advertising</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Advertising:</span> Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in
      selling and marketing expense on the accompanying Consolidated Statements of Operations for 2024 and 2023 totaled $1.2 million and $1.7 million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.</div>
<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_IncomeTaxPolicyTextBlock', window );">Income taxes</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Income taxes:</span> The income tax amounts reflected in the accompanying Consolidated Financial Statements
      are accounted for under the liability method in accordance with ASC 740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial
      statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which
      those temporary differences are expected to be recovered or settled. A valuation allowance is provided for certain deferred tax assets if it is more likely than not that the Company will not realize some portion of the deferred tax assets through
      future operations.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. See Note 11 &#8211; Income Taxes.</div>
<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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign currency translation</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Foreign currency translation:</span> The financial position and results of operations of our
      foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been
      translated at the weighted average rate for the period, and shareholders&#8217; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#8217; equity as a cumulative
      translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated
      Statements of Operations.</div>
<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_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Share-based payments</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;">Share-based payments:</span><span style="font-weight: bold;">&#160;</span>At December 31, 2024, we have share-based employee compensation plans, which are described more fully in Note 10 - Stock incentive plans. We account for those plans
      under the recognition and measurement principles of ASC 718, &#8220;Compensation &#8211; Stock Compensation.&#8221;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the
      employee&#8217;s requisite service period.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards. The key assumptions for this valuation method
      include the expected term of the option, our stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the
      determination of compensation expense.&#160; Forfeitures are recognized as they occur.</div>
<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_EarningsPerSharePolicyTextBlock', window );">Net income (loss) per share</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: bold; font-style: italic;"><span style="color: rgb(0, 0, 0); font-style: italic; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">Net income (loss) per share</span>:</span> We report net income or loss per share in accordance with ASC 260, &#8220;Earnings per Share (EPS).&#8221; Under this guidance, basic EPS, which excludes dilution, is computed by
      dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock
      were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore,
      these instruments are excluded from the computation of diluted EPS.&#160; See Note 12 - Earnings per share.</div>
<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_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recently issued accounting pronouncements</a></td>
<td class="text">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"><span style="font-weight: bold; font-style: italic; font-family: 'Times New Roman'; font-size: 10pt;">Recently issued accounting pronouncements</span><span style="font-family: 'Times New Roman'; font-size: 10pt;">:</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">On November 27, 2023, the FASB issued ASU 2023-07, <span style="font-style: italic;">Segment Reporting (Topic 280)</span>.&#160; The
              amendments improve reportable segment disclosures requirements and clarify circumstances in which an entity can disclose multiple segment measures of profit or loss, provide new segment disclosure requirements for entities with a single
              reportable segment and contain other disclosure requirements.&#160; These amendments are effective for fiscal years beginning after December 15, 2023 and for interim periods beginning after December 15, 2024. These segment disclosure requirements
              must be applied retrospectively to all periods presented in the financial statements.&#160; We adopted this standard effective January 1, 2024, and this standard did not have a material impact on the Company&#8217;s Consolidated Financial Statements. We
              have adopted this standard for our fiscal year 2024 annual financial statements and interim financial statements thereafter and have applied this standard retrospectively for all prior periods presented in the financial statements. See Note 7
              &#8211; Segment Reporting for further information.</div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"> <br/>
            </div>

<div>
            On December 14, 2023, the FASB issued ASU 2023-09, <span style="font-style: italic;">Income Taxes (Topic 740)</span>.&#160;&#160; This ASU requires the use of consistent categories and greater disaggregation in tax rate reconciliations and income taxes
            paid disclosures. These amendments are effective for fiscal years beginning after December 15, 2024. These income tax disclosure requirements can be applied either prospectively or retrospectively to all periods presented in the financial
            statements. We are currently evaluating the impact of adopting this standard; however, we do not expect it to have a material impact on our Consolidated Financial Statements.
            </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
              </span> </div>

<div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;">In November 2024, the FASB issued ASU 2024-03, Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40):
              Disaggregation of Income Statement Expenses. The amendments in this update require footnote disclosures on disaggregated information about specific categories underlying certain income statement expense line items that are considered
              relevant. This includes items such as the purchase of inventory, employee compensation, depreciation, and intangible asset amortization. The amendments in ASU 2024-03 are effective for fiscal years beginning after December 15, 2026. Early
              adoption is permitted. Adoption of this ASU will result in additional disclosure, but will not impact our consolidated financial position, results of operations, or cash flows.</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_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 advertising cost.</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 1<br> -Subparagraph (a)<br> -SubTopic 35<br> -Topic 720<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483406/720-35-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_AdvertisingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates 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> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-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_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="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.</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 942<br> -SubTopic 825<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478898/942-825-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<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_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_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</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 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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-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_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="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_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: 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><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-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_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</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 830<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/830/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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_GoodwillAndIntangibleAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and 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/2009/role/commonPracticeRef<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/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-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_GoodwillAndIntangibleAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-20<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 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-19<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 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-25<br><br>Reference 4: 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(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-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_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="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_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</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(6)(b))<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 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 330<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478411/912-330-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482989/270-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_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="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_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 leasing arrangement entered into by lessee.</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 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="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_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</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 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-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_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="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_ResearchAndDevelopmentExpensePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.</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 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483044/730-10-05-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_ResearchAndDevelopmentExpensePolicy</td>
</tr>
<tr>
<td style="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_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 revenue from contract with customer.</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 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-17<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 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-19<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 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-18<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 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-18<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 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<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 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<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 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<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 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 10: 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_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</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)(1)<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)(i)<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)(ii)<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)(v)<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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.C.Q3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 6: 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.D.1.Q5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 7: 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.D.3.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 8: 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.D.2.Q6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 9: 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 10: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="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_TradeAndOtherAccountsReceivablePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accounts receivable.</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/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-6<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<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/2147481962/310-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<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/2147481962/310-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481569/310-20-50-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-15<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-11B<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_TradeAndOtherAccountsReceivablePolicy</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-4<br><br>Reference 3: 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 4: 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><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-12<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-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_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>45
<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.1</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 (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_AccountingPoliciesAbstract', window );"><strong>Summary of significant 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_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock', window );">Allowance for Expected Credit Losses</a></td>
<td class="text">
<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"> <span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"><span style="font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;">The following table summarizes the activity
          recorded in the allowance for expected credit losses related to accounts receivable:</span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Years Ended December 31,</span></div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">768</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">351</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Additions charged to costs and expenses</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deductions</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(294</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(189</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">474</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">768</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</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_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text">
<div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;">Disaggregation of revenue</div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our
      revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31, 2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;<span style="font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Food service technology</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">14,719</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,382</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">16,101</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">POS automation</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,361</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,361</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Casino and gaming</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">12,522</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">7,826</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">20,348</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">TransAct Services Group</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2,883</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">691</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3,574</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total net sales</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">33,485</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">9,899</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">43,384</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Year Ended December 31, 2023</span></div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">&#160;</span><span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Food service technology</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15,159</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,149</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">16,308</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">POS automation</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6,805</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">117</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6,922</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Casino and gaming</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">28,715</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">12,477</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">41,192</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">TransAct Services Group</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">7,381</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">828</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">8,209</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Total net sales</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">58,060</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">14,571</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">72,631</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</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_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Net Contract (Liabilities) Assets</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Net contract (liabilities) assets consist of the following:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#160;<span style="font-style: italic;">(In thousands)</span></div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Unbilled receivables, current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">106</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">145</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Unbilled receivables, non-current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">32</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">120</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Customer pre-payments</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(164</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(155</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,107</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,079</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue, non-current</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(246</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(209</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Net contract (liabilities) assets</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,379</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1,178</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </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_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock', window );">Concentration of Credit Risk</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Accounts receivable from customers representing 10% or more of total accounts receivable, net during the years ended December 31, 2024 and 2023 were as
      follows:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
              <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">
                <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Light &amp; Wonder Gaming, Inc.</div>
              </div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">3</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">International Gaming Technology (&#8220;IGT&#8221;) </div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">28</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Sales to customers representing 10% or more of total net sales during the years ended December 31, 2024 and 2023 were as follows:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;">Light &amp; Wonder Gaming, Inc.</div>
          </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">11</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">%</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">6</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">%</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">IGT</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">6</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">%</div>
            </div>
          </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_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_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_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</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 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-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_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allowance for credit loss of financing 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://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11B<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-11B<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-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_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock</td>
</tr>
<tr>
<td style="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_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.</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 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-16<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-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_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock</td>
</tr>
<tr>
<td style="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>46
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_InventoryDisclosureAbstract', window );"><strong>Inventories [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_ScheduleOfInventoryCurrentTableTextBlock', window );">Inventories</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of inventories are:</div>

<div><br/>
    </div>

<table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;">Raw materials and purchased component parts</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,413</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,432</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Finished goods</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,748</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,327</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">16,161</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">17,759</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</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(6)(a))<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(6)(b))<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(6)(c))<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> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-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_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="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>47
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fixed assets, net (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets, net [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_PropertyPlantAndEquipmentTextBlock', window );">Fixed Assets, Net</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of fixed assets, net are:</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Tooling, machinery and equipment</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,828</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,562</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Furniture and office equipment</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,078</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,078</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Computer software and equipment</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,412</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,190</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Leasehold improvements</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,895</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,895</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">21,213</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">20,725</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;">Less: Accumulated depreciation and amortization</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(19,468</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(18,646</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,745</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,079</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Construction in-process</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">73</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">342</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,818</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,421</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="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>48
<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.1</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">12 Months Ended</th>
</tr>
<tr><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_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Intangible assets, net [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 );">Identifiable Intangible Assets</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"><span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:</span></div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left;">&#160;</div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross Amount</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accumulated Amortization</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross Amount</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accumulated Amortization</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Purchased technology</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,591</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,591</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,591</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,503</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Patents</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(15</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,606</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,518</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </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> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued liabilities (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_PayablesAndAccrualsAbstract', window );"><strong>Accrued liabilities [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_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Accrued Liabilities</a></td>
<td class="text">
<div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of accrued liabilities are:</div>

<div style="text-align: left;"><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Salaries and compensation related</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,786</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,455</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Taxes</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">725</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">870</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Professional and consulting</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">200</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">161</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">542</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">461</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,253</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">4,947</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 components of accrued 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;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="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>50
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment reporting (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_SegmentReportingAbstract', window );"><strong>Segment reporting [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_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Operating Financial Results of Segment</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following table provides the operating financial results of our segment:</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
              <div style="text-align: center;">December 31,</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom">
              <div style="text-align: justify; font-style: italic;">(In thousands)</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center;">2024</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
              <div style="text-align: center;">2023</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Revenues</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>43,384</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>72,631</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Cost of materials sold</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>15,268</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>25,990</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Compensation costs</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>18,323</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>20,004</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Professional services</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>3,493</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>4,965</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Occupancy costs</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,477</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,485</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Marketing expenses</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,109</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,715</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>IT expenses</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,255</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,203</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Severance expense</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>75</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,785</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Depreciation and amortization</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,037</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>1,489</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Other segment expenses<sup>(1)</sup></div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>4,973</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>8,289</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>(3,626</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>5,706</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Interest income</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>469</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>55</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Interest expense</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>(322</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>(310</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Other (expense) income</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>(89</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>452</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">
              <div>
                <div>Income tax benefit (expense)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>(6,295</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>(1,155</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 4px;" valign="bottom">
              <div>
                <div>Net (loss) income</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>(9,863</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom">
              <div>
                <div>4,748</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
        <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1)</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
                <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;">Other Segment expenses included in Segment net income primarily include other cost of goods sold, other administrative costs and engineering costs.<br/>
                </div>
              </td>

  </tr>


</table>
      </div>
<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_tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock', window );">Reconciliation of Net (Loss) Income to EBITDA and Adjusted EBITDA</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">A reconciliation of net (loss) income to EBITDA and adjusted EBITDA follows:</div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
              <div style="text-align: center;">Years Ended December 31,</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
              <div style="text-align: justify; font-style: italic;">(In thousands)</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
              <div style="text-align: center;">2024</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
              <div style="text-align: center;">2023</div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Net (loss) income</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>(9,863</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>4,748</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
              <div>
                <div>Interest (income) expense, net</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>(147</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
              <div>
                <div>255</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Income tax expense</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>6,295</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,155</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;" valign="bottom">
              <div>
                <div>Depreciation and amortization</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
              <div>
                <div>1,037</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
              <div>
                <div>1,489</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>EBITDA</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>(2,678</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>7,647</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>Share-based compensation</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>1,157</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
              <div>
                <div>860</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div style="font-size: 8pt;"><span style="font-size: 10pt; font-family: 'Times New Roman';">Adjusted EBITDA</span><sup><span style="font-family: 'Times New Roman'; font-size: 10pt;">(1)</span></sup></div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div>(1,521</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">
              <div>
                <div>)</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div>$</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
              <div>
                <div>8,507</div>
              </div>
            </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"><br/>
      </div>

<div style="display:none;"><br/></div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
          <table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">(1)</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
                  <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"><span style="font-family: 'Times New Roman'; font-size: 10pt;">Adjusted EBITDA in 2023 includes a $1.5 million severance charge related to the
                      resignation of the Company&#8217;s former Chief Executive Officer.</span></div>
                </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_tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reconciliation of net income (loss) to earnings before interest, taxes, depreciation and amortization (EBITDA) and adjusted EBITDA.</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;">tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-25<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<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_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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>51
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock incentive plans [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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Assumptions Used in Option Valuation Calculations</a></td>
<td class="text">
<div><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></div>

<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2024 and 2023 and a discussion of our
      methodology for developing each of the assumptions used in the valuation model:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Years ended December 31,</div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">2024</div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">2023</div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Expected option term (in years)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">6.1</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">7.0</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Expected volatility</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">57.7</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">55.6</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Risk-free interest rate</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">4.3</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">4.2</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: justify; color: rgb(0, 0, 0);">Dividend yield</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">0.0</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">0.0</div>
            </div>
          </td>

    <td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">%</div>
            </div>
          </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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Stock Option Activity</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, as amended, is summarized below:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"><br/>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Stock Options</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Restricted Stock Units</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Number of Shares</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);"> Average Price*</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Number of Units</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0);">Average Price**</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0);">Outstanding at December 31, 2023</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">1,314,475</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">8.82</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">184,536</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">7.76</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Granted</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">179,700</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">6.80</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">267,024</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">5.81</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Exercised</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">(74,995</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">7.41</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Forfeited</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">(7,750</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">7.11</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);">Expired</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">(109,312</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">10.71</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="text-align: left; color: rgb(0, 0, 0);">Outstanding at December 31, 2024</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">1,377,113</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">8.41</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">376,565</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom">
            <div>
              <div style="color: rgb(0, 0, 0);">6.44</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">*</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted average exercise price per share</div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">**</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted average grant stock price per share</div>
          </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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock', window );">Equity Awards Vested and Expected to Vest</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2024:</div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
            </span></td>

    <td colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity Awards Vested and Expected to Vest</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Equity Awards That Are Exercisable</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Awards</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Average Price*</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Aggregate </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Intrinsic </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Value</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining Term**</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Awards</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Average Price*</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Aggregate </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Intrinsic </div>
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Value</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Remaining Term**</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Stock Options</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,377,113</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">8.41</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">4.1</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">973,963</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">8.96</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2.2</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 20%;" valign="bottom">
            <div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Restricted stock units</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">376,565</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">1,540</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">2.1</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">&#8211;<br/>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"><br/>
      </span> </div>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">*</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted average exercise price per share</div>
          </td>

  </tr>


</table>

<div><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;">


  <tr>

    <td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">**</td>

    <td style="width: auto; vertical-align: top; text-align: left;">
            <div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">weighted-average contractual remaining term in
              years</div>
          </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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</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> -Subparagraph (f)(2)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest. 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://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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock</td>
</tr>
<tr>
<td style="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>52
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_IncomeTaxDisclosureAbstract', window );"><strong>Income taxes [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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Components of Income Tax Expense</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The components of the income tax expense are as follows:</div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
          <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
          <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Current:</div>
        </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(154</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">37</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">51</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">108</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">85</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(9</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">135</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred:</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">5,991</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">825</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">293</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">132</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">20</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">63</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,304</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,020</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Income tax expense<br/>
            </div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,295</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,155</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Deferred Tax Assets and Liabilities</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our
    deferred tax assets and liabilities were comprised of the following:</div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
          <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" rowspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
          <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax assets:</div>
        </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal net operating losses</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">276</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Foreign net operating losses</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">802</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">733</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State net operating losses</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">135</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">84</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Accrued severance</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">20</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">165</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Capitalized R&amp;D expenses</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,708</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,127</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Inventory reserves</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,047</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">896</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred revenue</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">31</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Warranty reserve</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">29</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">24</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock compensation expense</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">853</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">790</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other accrued compensation</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">165</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">404</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">R&amp;D credit carryforward</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">903</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">695</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div style="margin-left: 9pt; text-indent: 0pt;">Other Assets<br/>
          </div>
        </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">379</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">360</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross deferred tax assets</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,324</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,309</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Valuation allowance</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(8,103</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(719</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -18pt; margin-left: 45pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net deferred tax assets</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">221</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,590</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Deferred tax liabilities:</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Depreciation and amortization<br/>
            </div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">179</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">237</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">42</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">49</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net deferred tax liabilities</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">221</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">286</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total net deferred tax assets</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,304</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_SummaryOfValuationAllowanceTextBlock', window );">Valuation Allowance on Deferred Tax Assets</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">As of December 31, 2024 and 2023, we had $8.1 million and $719 thousand, respectively,
    of valuation allowance against our deferred income tax assets. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:</div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
          <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">719</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">656</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Additions charged to income tax provision</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7,384</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">63</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,103</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">719</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Statutory to Effective Tax Rate Reconciliation</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"><span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;">Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:</span></div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Year Ended December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Federal statutory rate</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">21.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">21.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">R&amp;D credit</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8.8</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(5.9</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">Foreign-derived intangible income deduction <br/>
        </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#8211;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">(1.7</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">)</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock award excess tax benefit</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.7</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.4</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">State income taxes, net of federal income taxes</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2.5</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Business meals and entertainment</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.4</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.3</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Executive compensation limitation</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.6</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Uncertain tax positions</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.2</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.5</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Stock option cancellations</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(2.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.6</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Change in valuation allowance<br/>
            </div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(206.9</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Other</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3.0</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.3</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Effective tax rate</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(176.4</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%)</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">19.6</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </div>
        </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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Unrecognized Tax Benefits</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">We had $203 and $197 thousand of total gross unrecognized tax benefits at December 31, 2024 and 2023, respectively that, if recognized, would favorably affect the
    effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the
    gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:</div>

<div><br/>
  </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31,</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
          <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
        </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
          <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, beginning of period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">197</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">142</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Tax positions taken during the current period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">31</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">83</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">Reductions for tax positions in prior years <br/>
        </td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">(25</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">)</td>

    <td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#8211;</td>

    <td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
          <div>
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Lapse of statute of limitations</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">&#8211;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(28</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
          </div>
        </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Balance, end of period</div>
          </div>
        </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">203</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </div>
        </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
          <div>
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">197</div>
          </div>
        </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</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_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax 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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax 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/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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 change in unrecognized tax benefits.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<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 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="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_SummaryOfValuationAllowanceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation allowances to reduce deferred tax assets to net realizable value, including identification of the deferred tax asset more likely than not will not be fully realized and the corresponding amount of the valuation allowance.</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 740<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/2147482685/740-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_SummaryOfValuationAllowanceTextBlock</td>
</tr>
<tr>
<td style="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>53
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per share (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_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 );">Earnings per Share</a></td>
<td class="text">
<div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;">Earnings per share was computed as follows (in thousands, except per share amounts):</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income<br/>
              </div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(9,863</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">4,748</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Shares:</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic:&#160; Weighted average common shares outstanding</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,997</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,951</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">&#8211;</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">70</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted:&#160; Weighted average common and common equivalent shares outstanding</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,997</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,021</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net (loss) income per common share:</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.99</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.48</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.99</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.47</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"></div>
            </div>
          </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_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>54
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Geographic area information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_SegmentsGeographicalAreasAbstract', window );"><strong>Geographic area information [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_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock', window );">Net Sales and Fixed Assets by Geographic Area</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the
      location of the customer and asset.</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales:</div>
          </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">33,485</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">58,060</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">International</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">9,899</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">14,571</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">43,384</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">72,631</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Fixed assets, net:</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">United States</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">831</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">945</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">International</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">987</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,476</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,818</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2,421</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</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_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.</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(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<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_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock</td>
</tr>
<tr>
<td style="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_SegmentsGeographicalAreasAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentsGeographicalAreasAbstract</td>
</tr>
<tr>
<td style="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>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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_LeasesAbstract', window );"><strong>Leases [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_tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock', window );">Cash Flows for Operating Leases</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Operating cash outflows from leases</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,022</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,013</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>


</table>
<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_tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock', window );">Additional Information Related to Leases</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The following summarizes additional information related to our leases:</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Years Ended December 31,</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Weighted average remaining lease term (in years)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1.2</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1.7</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 76%;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Weighted average discount rate</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">7.7</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">4.4</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">%</div>
          </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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Maturity of Operating Lease Liabilities</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">The maturity of the Company&#8217;s operating lease liabilities are as follows (in thousands):</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"> </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31, 2024</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2025</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,014</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2026</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">237</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total undiscounted lease payments</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,251</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Less imputed interest</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">65</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Total lease liabilities</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom">
            <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">1,186</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom">&#160;</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_tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 information related to lessee's operating leases, including weighted average lease term and discount rate.</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;">tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 supplemental information for the statement of cash flows related to operating leases.</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;">tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</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 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="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>56
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Quarterly results of operations (unaudited) (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly results of operations (unaudited) [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_ScheduleOfQuarterlyFinancialInformationTableTextBlock', window );">Quarterly Results of Operations</a></td>
<td class="text">
<div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Our quarterly results of operations for 2024
      and 2023 are as follows:</div>

<div><br/>
    </div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;">


  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"></td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Quarter Ended</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">
            <div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;">(In thousands, except per share amounts)</div>
          </td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">March 31</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">June 30</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">September 30</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom">
            <div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">December 31</div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom;" valign="bottom">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2024:</div>
          </td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,687</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">11,599</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,867</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,231</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross profit</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">5,624</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,110</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">5,227</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">4,521</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net loss</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(1,036</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(319</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(551</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(7,957</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net loss per common share:</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.10</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.03</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.06</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.79</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.10</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.03</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.06</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.79</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">2023:</div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net sales</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">22,270</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">19,906</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">17,190</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">$</div>
            </div>
          </td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">13,265</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Gross profit</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">12,255</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">10,858</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">8,916</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">6,371</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net income (loss)</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">3,139</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">765</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">906</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(62</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Net income (loss) per common share:</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Basic</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.32</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.08</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.09</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.01</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </td>

  </tr>

  <tr>

    <td style="vertical-align: bottom; width: 52%;" valign="bottom">
            <div>
              <div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">Diluted</div>
            </div>
          </td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.31</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.08</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">0.09</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>

    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">(0.01</div>
            </div>
          </td>

    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">
            <div>
              <div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;">)</div>
            </div>
          </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_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfQuarterlyFinancialInformationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.</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 1<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-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_ScheduleOfQuarterlyFinancialInformationTableTextBlock</td>
</tr>
<tr>
<td style="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>57
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of business (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2024 </div>
<div>Solution </div>
<div>Segment</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_tact_DescriptionOfBusinessAbstract', window );"><strong>Description of business [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_NumberOfOperatingSegments', window );">Number of operating segments | Segment</a></td>
<td class="nump">1<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_tact_NumberOfSoftwareSolutions', window );">Number of software solutions from the after-market side of the business | Solution</a></td>
<td class="nump">2<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_DescriptionOfBusinessAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tact_DescriptionOfBusinessAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_NumberOfSoftwareSolutions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 software solutions from the after-market side of the business.</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;">tact_NumberOfSoftwareSolutions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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 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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-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_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="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: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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<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.1</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, Accounts receivable and credit losses (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_AllowanceForDoubtfulAccountsReceivableRollforward', window );"><strong>Allowances for expected credit losses [Roll Forward]</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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance, beginning of period</a></td>
<td class="nump">$ 768<span></span>
</td>
<td class="nump">$ 351<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_ProvisionForDoubtfulAccounts', window );">Additions charged to costs and expenses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">606<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_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Deductions</a></td>
<td class="num">(294)<span></span>
</td>
<td class="num">(189)<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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance, end of period</a></td>
<td class="nump">$ 474<span></span>
</td>
<td class="nump">$ 768<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_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allowance for credit loss on accounts 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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<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 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-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_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="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_AllowanceForDoubtfulAccountsReceivableRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_AllowanceForDoubtfulAccountsReceivableRollforward</td>
</tr>
<tr>
<td style="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_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 direct write-downs of accounts receivable charged against the allowance.</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 (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-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_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="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_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (reversal of expense) for expected credit loss on accounts 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 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<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_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<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.1</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, Fixed assets (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [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_Depreciation', window );">Depreciation expense</a></td>
<td class="nump">$ 0.9<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_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ToolsDiesAndMoldsMember', window );">Tooling [Member]</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</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_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">5 years<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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment [Member]</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [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_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">10 years<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_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember', window );">Furniture and Office Equipment [Member] | Minimum [Member]</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</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_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">5 years<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_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember', window );">Furniture and Office Equipment [Member] | Maximum [Member]</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [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_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">10 years<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_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember', window );">Computer Software and Equipment [Member] | Minimum [Member]</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</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_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">3 years<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_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember', window );">Computer Software and Equipment [Member] | Maximum [Member]</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [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_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">7 years<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_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://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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer 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;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ToolsDiesAndMoldsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ToolsDiesAndMoldsMember</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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember</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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MaximumMember</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_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember</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>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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Summary of significant accounting policies, Leases (Details)<br></strong></div></th>
<th class="th"><div>Dec. 31, 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_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</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_AssetsAndLiabilitiesLesseeAbstract', window );"><strong>Leases [Abstract]</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_LesseeOperatingLeaseRemainingLeaseTerm', window );">Remaining lease terms</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_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</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_AssetsAndLiabilitiesLesseeAbstract', window );"><strong>Leases [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_LesseeOperatingLeaseRemainingLeaseTerm', window );">Remaining lease terms</a></td>
<td class="text">3 years<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_AssetsAndLiabilitiesLesseeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AssetsAndLiabilitiesLesseeAbstract</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Remaining lease term of operating lease, 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> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeOperatingLeaseRemainingLeaseTerm</td>
</tr>
<tr>
<td style="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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MaximumMember</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>61
<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.1</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, Goodwill and intangible assets (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2024 </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_AccountingPoliciesAbstract', window );"><strong>Summary of significant 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_GoodwillAndIntangibleAssetImpairment', window );">Impairment of goodwill and intangible assets</a></td>
<td class="nump">$ 0<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_GoodwillAndIntangibleAssetImpairment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 loss recognized during the period from the impairment of goodwill plus the loss recognized in the period resulting from the impairment of the carrying amount of intangible assets, other than goodwill.</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_GoodwillAndIntangibleAssetImpairment</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<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.1</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, Revenue recognition - Disaggregation of revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_AccountingPoliciesAbstract', window );"><strong>Summary of significant accounting policies [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>
<td class="text">&#160;<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_tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation', window );">Term of free maintenance upon completion of software installation</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">1 year<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 10,231<span></span>
</td>
<td class="nump">$ 10,867<span></span>
</td>
<td class="nump">$ 11,599<span></span>
</td>
<td class="nump">$ 10,687<span></span>
</td>
<td class="nump">$ 13,265<span></span>
</td>
<td class="nump">$ 17,190<span></span>
</td>
<td class="nump">$ 19,906<span></span>
</td>
<td class="nump">$ 22,270<span></span>
</td>
<td class="nump">$ 43,384<span></span>
</td>
<td class="nump">$ 72,631<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 [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">33,485<span></span>
</td>
<td class="nump">58,060<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=tact_InternationalMember', window );">International [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">9,899<span></span>
</td>
<td class="nump">14,571<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=tact_FoodServiceTechnologyMember', window );">Food Service Technology [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">16,101<span></span>
</td>
<td class="nump">16,308<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=tact_FoodServiceTechnologyMember', window );">Food Service Technology [Member] | United States [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">14,719<span></span>
</td>
<td class="nump">15,159<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=tact_FoodServiceTechnologyMember', window );">Food Service Technology [Member] | International [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">1,382<span></span>
</td>
<td class="nump">1,149<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=tact_PosAutomationAndBankingMember', window );">POS Automation [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">3,361<span></span>
</td>
<td class="nump">6,922<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=tact_PosAutomationAndBankingMember', window );">POS Automation [Member] | United States [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">3,361<span></span>
</td>
<td class="nump">6,805<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=tact_PosAutomationAndBankingMember', window );">POS Automation [Member] | International [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">0<span></span>
</td>
<td class="nump">117<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=tact_CasinoAndGamingMember', window );">Casino and Gaming [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">20,348<span></span>
</td>
<td class="nump">41,192<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=tact_CasinoAndGamingMember', window );">Casino and Gaming [Member] | United States [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">12,522<span></span>
</td>
<td class="nump">28,715<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=tact_CasinoAndGamingMember', window );">Casino and Gaming [Member] | International [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">7,826<span></span>
</td>
<td class="nump">12,477<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=tact_TransactServicesGroupMember', window );">TransAct Services Group [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">3,574<span></span>
</td>
<td class="nump">8,209<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=tact_TransactServicesGroupMember', window );">TransAct Services Group [Member] | United States [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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,883<span></span>
</td>
<td class="nump">7,381<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=tact_TransactServicesGroupMember', window );">TransAct Services Group [Member] | International [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>
<td class="text">&#160;<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_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">$ 691<span></span>
</td>
<td class="nump">$ 828<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the customer receives free maintenance upon completion of EPICENTRAL installation, 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;">tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_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_DisaggregationOfRevenueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DisaggregationOfRevenueAbstract</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 5: 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 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/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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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_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=tact_InternationalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_InternationalMember</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=tact_FoodServiceTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_FoodServiceTechnologyMember</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=tact_PosAutomationAndBankingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_PosAutomationAndBankingMember</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=tact_CasinoAndGamingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_CasinoAndGamingMember</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=tact_TransactServicesGroupMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_TransactServicesGroupMember</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>63
<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.1</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, Revenue recognition - Contract balances (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_AccountingPoliciesAbstract', window );"><strong>Summary of significant accounting policies [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_ContractWithCustomerRevenueRecognized', window );">Revenue recognized</a></td>
<td class="nump">$ 1,100<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_ContractWithCustomerAssetAndLiabilityAbstract', window );"><strong>Net contract (liabilities) assets [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_ContractWithCustomerAssetNetCurrent', window );">Unbilled receivables, current</a></td>
<td class="nump">106<span></span>
</td>
<td class="nump">$ 145<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_ContractWithCustomerAssetNetNoncurrent', window );">Unbilled receivables, non-current</a></td>
<td class="nump">32<span></span>
</td>
<td class="nump">120<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_tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent', window );">Customer pre-payments</a></td>
<td class="num">(164)<span></span>
</td>
<td class="num">(155)<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_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue, current</a></td>
<td class="num">(1,107)<span></span>
</td>
<td class="num">(1,079)<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, non-current</a></td>
<td class="num">(246)<span></span>
</td>
<td class="num">(209)<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_tact_ContractWithCustomerAssetLiabilityNet', window );">Net contract (liabilities) assets</a></td>
<td class="num">$ (1,379)<span></span>
</td>
<td class="num">$ (1,178)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_ContractWithCustomerAssetLiabilityNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (asset) to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time and the amount of obligation (liability) 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>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;">tact_ContractWithCustomerAssetLiabilityNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 related to customer prepayments 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>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;">tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ContractWithCustomerRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 related to 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>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;">tact_ContractWithCustomerRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_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_ContractWithCustomerAssetAndLiabilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ContractWithCustomerAssetAndLiabilityAbstract</td>
</tr>
<tr>
<td style="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 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-3<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNetNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-3<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetNoncurrent</td>
</tr>
<tr>
<td style="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_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 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<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 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<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 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 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<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 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<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 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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Summary of significant accounting policies, Revenue recognition - Remaining performance obligations (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Dec. 31, 2024 </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_RevenuePerformanceObligationAbstract', window );"><strong>Remaining performance obligations [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_RevenueRemainingPerformanceObligation', window );">Remaining performance obligations</a></td>
<td class="nump">$ 6.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_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-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_RevenuePerformanceObligationAbstract', window );"><strong>Remaining performance obligations [Abstract]</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 );">Remaining performance obligations</a></td>
<td class="nump">$ 6.0<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 );">Expected timing of satisfaction, period</a></td>
<td class="text">12 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_RevenuePerformanceObligationAbstract', window );"><strong>Remaining performance obligations [Abstract]</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 );">Remaining performance obligations</a></td>
<td class="nump">$ 0.2<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 );">Expected timing of satisfaction, period</a></td>
<td class="text">12 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=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_RevenuePerformanceObligationAbstract', window );"><strong>Remaining performance obligations [Abstract]</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 );">Remaining performance obligations</a></td>
<td class="text"> <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 );">Expected timing of satisfaction, period</a></td>
<td class="text">12 months<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_RevenuePerformanceObligationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RevenuePerformanceObligationAbstract</td>
</tr>
<tr>
<td style="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_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_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-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=2025-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=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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<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.1</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, Concentration of credit risk (Details) - Customer Concentration Risk [Member]<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</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_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | Light &amp; Wonder Gaming, Inc. [Member]</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_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [Abstract]</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_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">15.00%<span></span>
</td>
<td class="nump">3.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_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | International Gaming Technology [Member]</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_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [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_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">28.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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Light &amp; Wonder Gaming, Inc. [Member]</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_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [Abstract]</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_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">11.00%<span></span>
</td>
<td class="nump">6.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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | International Gaming Technology [Member]</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_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [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_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">15.00%<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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<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_RisksAndUncertaintiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RisksAndUncertaintiesAbstract</td>
</tr>
<tr>
<td style="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_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_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_srt_MajorCustomersAxis=tact_LightWonderGamingIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_LightWonderGamingIncMember</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=tact_InternationalGameTechnologyPlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_InternationalGameTechnologyPlcMember</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<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.1</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, Engineering, design and product development (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_ResearchAndDevelopmentExpenseAbstract', window );"><strong>Engineering, design and product development [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_ResearchAndDevelopmentExpense', window );">Research and development expense</a></td>
<td class="nump">$ 6,977<span></span>
</td>
<td class="nump">$ 9,442<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_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 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 2: 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 3: 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 4: 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_ResearchAndDevelopmentExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ResearchAndDevelopmentExpenseAbstract</td>
</tr>
<tr>
<td style="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>67
<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.1</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, Advertising (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_MarketingAndAdvertisingExpenseAbstract', window );"><strong>Advertising [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_AdvertisingExpense', window );">Advertising expense</a></td>
<td class="nump">$ 1.2<span></span>
</td>
<td class="nump">$ 1.7<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_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, 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://www.xbrl.org/2003/role/exampleRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483385/720-35-55-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483406/720-35-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_AdvertisingExpense</td>
</tr>
<tr>
<td style="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_MarketingAndAdvertisingExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MarketingAndAdvertisingExpenseAbstract</td>
</tr>
<tr>
<td style="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>68
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Inventories (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_InventoryDisclosureAbstract', window );"><strong>Inventories [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_InventoryRawMaterialsAndSuppliesNetOfReserves', window );">Raw materials and purchased component parts</a></td>
<td class="nump">$ 8,413<span></span>
</td>
<td class="nump">$ 8,432<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_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">7,748<span></span>
</td>
<td class="nump">9,327<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_InventoryNet', window );">Inventories</a></td>
<td class="nump">$ 16,161<span></span>
</td>
<td class="nump">$ 17,759<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_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="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_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.</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 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(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_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="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_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or 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 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 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: 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(6))<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_InventoryNet</td>
</tr>
<tr>
<td style="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_InventoryRawMaterialsAndSuppliesNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregated amount of unprocessed materials to be used in manufacturing or production process and supplies that will be consumed. This amount is net of valuation reserves and adjustments.</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 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: 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(6))<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_InventoryRawMaterialsAndSuppliesNetOfReserves</td>
</tr>
<tr>
<td style="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>69
<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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fixed assets, net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [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_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">$ 21,213<span></span>
</td>
<td class="nump">$ 20,725<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: Accumulated depreciation and amortization</a></td>
<td class="num">(19,468)<span></span>
</td>
<td class="num">(18,646)<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_ConstructionInProgressGross', window );">Construction in-process</a></td>
<td class="nump">73<span></span>
</td>
<td class="nump">342<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_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">1,818<span></span>
</td>
<td class="nump">2,421<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_PropertyPlantAndEquipmentByTypeAxis=tact_FixedAssetsExcludingConstructionInProcessMember', window );">Fixed Assets, Excluding Construction in-Process [Member]</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_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<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_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">1,745<span></span>
</td>
<td class="nump">2,079<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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Tooling, Machinery and Equipment [Member]</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_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</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_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">7,828<span></span>
</td>
<td class="nump">7,562<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_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember', window );">Furniture and Office Equipment [Member]</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_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [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_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">2,078<span></span>
</td>
<td class="nump">2,078<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_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember', window );">Computer Software and Equipment [Member]</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_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</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_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">8,412<span></span>
</td>
<td class="nump">8,190<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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold Improvements [Member]</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_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [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_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">$ 2,895<span></span>
</td>
<td class="nump">$ 2,895<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</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)(8)(b))<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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<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> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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_ConstructionInProgressGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.</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 360<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/2147482099/360-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_ConstructionInProgressGross</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</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)(8))<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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<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 360<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/2147482099/360-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_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentNetByTypeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentNetByTypeAbstract</td>
</tr>
<tr>
<td style="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_PropertyPlantAndEquipmentByTypeAxis=tact_FixedAssetsExcludingConstructionInProcessMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=tact_FixedAssetsExcludingConstructionInProcessMember</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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember</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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</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>70
<FILENAME>R54.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.1</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 (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_FiniteLivedIntangibleAssetsNetAbstract', window );"><strong>Identifiable intangible assets [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_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">$ 1,606<span></span>
</td>
<td class="nump">$ 1,606<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,606)<span></span>
</td>
<td class="num">(1,518)<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 );">Amortization expense</a></td>
<td class="nump">88<span></span>
</td>
<td class="nump">154<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_TechnologyBasedIntangibleAssetsMember', window );">Purchased Technology [Member]</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_FiniteLivedIntangibleAssetsNetAbstract', window );"><strong>Identifiable intangible assets [Abstract]</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_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">1,591<span></span>
</td>
<td class="nump">1,591<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(1,591)<span></span>
</td>
<td class="num">(1,503)<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_PatentsMember', window );">Patents [Member]</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_FiniteLivedIntangibleAssetsNetAbstract', window );"><strong>Identifiable intangible assets [Abstract]</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_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">15<span></span>
</td>
<td class="nump">15<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">$ (15)<span></span>
</td>
<td class="num">$ (15)<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. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</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 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<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)(2)<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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<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> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<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_FiniteLivedIntangibleAssetsNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsNetAbstract</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TechnologyBasedIntangibleAssetsMember</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_PatentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PatentsMember</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>71
<FILENAME>R55.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accrued liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_PayablesAndAccrualsAbstract', window );"><strong>Accrued 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_EmployeeRelatedLiabilitiesCurrent', window );">Salaries and compensation related</a></td>
<td class="nump">$ 1,786<span></span>
</td>
<td class="nump">$ 3,455<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_TaxesPayableCurrent', window );">Taxes</a></td>
<td class="nump">725<span></span>
</td>
<td class="nump">870<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 and consulting</a></td>
<td class="nump">200<span></span>
</td>
<td class="nump">161<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_OtherLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">542<span></span>
</td>
<td class="nump">461<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_AccruedLiabilitiesCurrent', window );">Accrued liabilities</a></td>
<td class="nump">$ 3,253<span></span>
</td>
<td class="nump">$ 4,947<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_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</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_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="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_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</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_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="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_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="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_TaxesPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. 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><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(19))<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_TaxesPayableCurrent</td>
</tr>
<tr>
<td style="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>72
<FILENAME>R56.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment reporting, Operating financial results of segment (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Sep. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Sep. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>Segment</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </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_SegmentReportingAbstract', window );"><strong>Segment reporting [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>
<td class="text">&#160;<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_NumberOfOperatingSegments', window );">Number of operating segments | Segment</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">1<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_SegmentReportingInformationProfitLossAbstract', window );"><strong>Segment Reporting [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 10,231<span></span>
</td>
<td class="nump">$ 10,867<span></span>
</td>
<td class="nump">$ 11,599<span></span>
</td>
<td class="nump">$ 10,687<span></span>
</td>
<td class="nump">$ 13,265<span></span>
</td>
<td class="nump">$ 17,190<span></span>
</td>
<td class="nump">$ 19,906<span></span>
</td>
<td class="nump">$ 22,270<span></span>
</td>
<td class="nump">$ 43,384<span></span>
</td>
<td class="nump">$ 72,631<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_DepreciationAndAmortization', window );">Depreciation and amortization</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">1,037<span></span>
</td>
<td class="nump">1,489<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) income</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="num">(3,626)<span></span>
</td>
<td class="nump">5,706<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_InterestIncomeDomesticDeposits', window );">Interest income</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">469<span></span>
</td>
<td class="nump">55<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_InterestExpenseNonoperating', window );">Interest 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="text">&#160;<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="num">(322)<span></span>
</td>
<td class="num">(310)<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) income</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="num">(89)<span></span>
</td>
<td class="nump">452<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 );">Income tax benefit (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="text">&#160;<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="num">(6,295)<span></span>
</td>
<td class="num">(1,155)<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) income</a></td>
<td class="num">$ (7,957)<span></span>
</td>
<td class="num">$ (551)<span></span>
</td>
<td class="num">$ (319)<span></span>
</td>
<td class="num">$ (1,036)<span></span>
</td>
<td class="num">$ (62)<span></span>
</td>
<td class="nump">$ 906<span></span>
</td>
<td class="nump">$ 765<span></span>
</td>
<td class="nump">$ 3,139<span></span>
</td>
<td class="num">$ (9,863)<span></span>
</td>
<td class="nump">4,748<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_SegmentReportingOtherItemCompositionDescription', window );">Segment reporting, other segment item, composition, 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">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Other Segment expenses included in Segment net income primarily include other cost of goods sold, other administrative costs and engineering costs.<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_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember', window );">Operating Segment [Member] | Transact [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>
<td class="text">&#160;<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_SegmentReportingInformationProfitLossAbstract', window );"><strong>Segment Reporting [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 43,384<span></span>
</td>
<td class="nump">72,631<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_CostDirectMaterial', window );">Cost of materials sold</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">15,268<span></span>
</td>
<td class="nump">25,990<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_CompensationExpenseExcludingCostOfGoodAndServiceSold', window );">Compensation costs</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">18,323<span></span>
</td>
<td class="nump">20,004<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_ProfessionalAndContractServicesExpense', window );">Professional services</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">3,493<span></span>
</td>
<td class="nump">4,965<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_OccupancyNet', window );">Occupancy costs</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">1,477<span></span>
</td>
<td class="nump">1,485<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_MarketingExpense', window );">Marketing expenses</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">1,109<span></span>
</td>
<td class="nump">1,715<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_InformationTechnologyAndDataProcessing', window );">IT expenses</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">1,255<span></span>
</td>
<td class="nump">1,203<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_SeveranceCosts1', window );">Severance 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="text">&#160;<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">75<span></span>
</td>
<td class="nump">1,785<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_DepreciationAndAmortization', window );">Depreciation and amortization</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">1,037<span></span>
</td>
<td class="nump">1,489<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_SegmentReportingOtherItemAmount', window );">Other segment expenses</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">4,973<span></span>
</td>
<td class="nump">8,289<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_OperatingIncomeLoss', window );">Operating (loss) income</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="num">(3,626)<span></span>
</td>
<td class="nump">5,706<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_ConsolidationItemsAxis=us-gaap_MaterialReconcilingItemsMember', window );">Reconciling Item [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>
<td class="text">&#160;<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_SegmentReportingInformationProfitLossAbstract', window );"><strong>Segment Reporting [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>
<td class="text">&#160;<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_InterestIncomeDomesticDeposits', window );">Interest income</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">469<span></span>
</td>
<td class="nump">55<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_InterestExpenseNonoperating', window );">Interest 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="text">&#160;<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="num">(322)<span></span>
</td>
<td class="num">(310)<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_OtherNonoperatingIncomeExpense', window );">Other (expense) income</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="num">(89)<span></span>
</td>
<td class="nump">452<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_IncomeTaxExpenseBenefit', window );">Income tax benefit (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="text">&#160;<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="num">$ (6,295)<span></span>
</td>
<td class="num">$ (1,155)<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_CompensationExpenseExcludingCostOfGoodAndServiceSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit. Other employee benefit expense includes, but is not limited to, service component of net periodic benefit cost for defined benefit plan. Excludes compensation cost in cost of good and service sold.</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 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 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(4))<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_CompensationExpenseExcludingCostOfGoodAndServiceSold</td>
</tr>
<tr>
<td style="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_CostDirectMaterial">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cost of material used for good produced and service rendered.</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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostDirectMaterial</td>
</tr>
<tr>
<td style="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_DepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.</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://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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAndAmortization</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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_InformationTechnologyAndDataProcessing">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expenses incurred in the period for information technology and data processing products and services.</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(6))<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_InformationTechnologyAndDataProcessing</td>
</tr>
<tr>
<td style="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_InterestExpenseNonoperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpenseNonoperating</td>
</tr>
<tr>
<td style="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_InterestIncomeDomesticDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Interest earned on deposits in United States money market accounts and other United States interest earning accounts.</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 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(4))<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_InterestIncomeDomesticDeposits</td>
</tr>
<tr>
<td style="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_MarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expenditures for planning and executing the conception, pricing, promotion, and distribution of ideas, goods, and services. Costs of public relations and corporate promotions are typically considered to be marketing costs.</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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MarketingExpense</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 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(20))<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 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 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 10: 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 11: 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 12: 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 13: 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 14: 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 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 (b)<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 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: 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 18: 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 19: 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 20: 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 21: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<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)(iv))<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)(5))<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 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 33: 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 34: 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 35: 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 36: 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 37: 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_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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 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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-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_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="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: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_OccupancyNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 net occupancy expense that may include items, such as depreciation of facilities and equipment, lease expenses, property taxes and property and casualty insurance expense.</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(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: 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(14)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 840<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481161/840-30-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_OccupancyNet</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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://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_ProfessionalAndContractServicesExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Professional and contract service expense includes cost reimbursements for support services related to contracted projects, outsourced management, technical and staff support.</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_ProfessionalAndContractServicesExpense</td>
</tr>
<tr>
<td style="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/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 2: 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 3: 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 4: 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 5: 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 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/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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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_SegmentReportingInformationProfitLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentReportingInformationProfitLossAbstract</td>
</tr>
<tr>
<td style="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_SegmentReportingOtherItemAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (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 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 2: 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 3: 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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<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 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<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_SegmentReportingOtherItemAmount</td>
</tr>
<tr>
<td style="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_SegmentReportingOtherItemCompositionDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 composition of other segment item not separately disclosed.</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 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 2: 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 3: 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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<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 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<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_SegmentReportingOtherItemCompositionDescription</td>
</tr>
<tr>
<td style="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_SeveranceCosts1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for special or contractual termination benefits provided to current employees involuntarily terminated under a benefit arrangement associated exit or disposal activities pursuant to an authorized plan. Excludes expenses related to one-time termination benefits, 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SeveranceCosts1</td>
</tr>
<tr>
<td style="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_srt_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember</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_StatementBusinessSegmentsAxis=tact_TransactMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementBusinessSegmentsAxis=tact_TransactMember</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_ConsolidationItemsAxis=us-gaap_MaterialReconcilingItemsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ConsolidationItemsAxis=us-gaap_MaterialReconcilingItemsMember</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>73
<FILENAME>R57.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment reporting, Reconciliation of net (loss) income to EBITDA and adjusted EBITDA (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th" colspan="2"><div>Dec. 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_tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract', window );"><strong>Reconciliation of Net (Loss) Income to EBITDA and Adjusted EBITDA [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>
<td class="text">&#160;<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="fn" style="border-bottom: 0px;"></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) income</a></td>
<td class="num">$ (7,957)<span></span>
</td>
<td class="num">$ (551)<span></span>
</td>
<td class="num">$ (319)<span></span>
</td>
<td class="num">$ (1,036)<span></span>
</td>
<td class="num">$ (62)<span></span>
</td>
<td class="nump">$ 906<span></span>
</td>
<td class="nump">$ 765<span></span>
</td>
<td class="nump">$ 3,139<span></span>
</td>
<td class="num">$ (9,863)<span></span>
</td>
<td class="nump">$ 4,748<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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_InterestIncomeExpenseNonoperatingNet', window );">Interest (income) expense, net</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="num">(147)<span></span>
</td>
<td class="nump">255<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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 );">Income tax 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="text">&#160;<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">6,295<span></span>
</td>
<td class="nump">1,155<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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_DepreciationAndAmortization', window );">Depreciation and amortization</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">1,037<span></span>
</td>
<td class="nump">1,489<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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_tact_EarningsBeforeInterestTaxesDepreciationAndAmortization', window );">EBITDA</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="num">(2,678)<span></span>
</td>
<td class="nump">7,647<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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 );">Share-based compensation</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">1,157<span></span>
</td>
<td class="nump">860<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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_tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization', window );">Adjusted EBITDA</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="num">$ (1,521)<span></span>
</td>
<td class="nump">8,507<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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_TitleOfIndividualAxis=srt_ChiefExecutiveOfficerMember', window );">Former Chief Executive Officer [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>
<td class="text">&#160;<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="fn" style="border-bottom: 0px;"></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_tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract', window );"><strong>Reconciliation of Net (Loss) Income to EBITDA and Adjusted EBITDA [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>
<td class="text">&#160;<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="fn" style="border-bottom: 0px;"></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_SeveranceCosts1', window );">Severance 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="text">&#160;<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">$ 1,500<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
</tr>
<tr><td colspan="12"></td></tr>
<tr><td colspan="12"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="font-family: 'Times New Roman'; font-size: 10pt;">Adjusted EBITDA in 2023 includes a $1.5 million severance charge related to the
                      resignation of the Company&#8217;s former Chief Executive Officer.</span></td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Earnings before interest, taxes, depreciation and amortization (EBITDA) after adjustments for special items and non-recurring 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;">tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_EarningsBeforeInterestTaxesDepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Earnings before interest, taxes, depreciation and amortization (EBITDA).</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;">tact_EarningsBeforeInterestTaxesDepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_DepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.</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://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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAndAmortization</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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/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 2: 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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/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 2: 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 3: 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 4: 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 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(20))<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 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 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 10: 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 11: 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 12: 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 13: 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 14: 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 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 (b)<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 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: 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 18: 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 19: 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 20: 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 21: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<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)(iv))<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)(5))<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 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 33: 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 34: 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 35: 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 36: 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 37: 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_SeveranceCosts1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for special or contractual termination benefits provided to current employees involuntarily terminated under a benefit arrangement associated exit or disposal activities pursuant to an authorized plan. Excludes expenses related to one-time termination benefits, 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SeveranceCosts1</td>
</tr>
<tr>
<td style="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_srt_TitleOfIndividualAxis=srt_ChiefExecutiveOfficerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TitleOfIndividualAxis=srt_ChiefExecutiveOfficerMember</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>74
<FILENAME>R58.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Retirement savings plan (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement savings plan [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_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch', window );">Employer matching contribution percentage</a></td>
<td class="nump">50.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_DefinedContributionPlanEmployerMatchingContributionPercent', window );">Employee's contribution percentage for match</a></td>
<td class="nump">6.00%<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_DefinedContributionPlanCostRecognized', window );">Matching contributions, net of applied forfeitures</a></td>
<td class="nump">$ 364<span></span>
</td>
<td class="nump">$ 230<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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="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_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost for defined contribution 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 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480794/715-70-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_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="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_DefinedContributionPlanEmployerMatchingContributionPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan.</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_DefinedContributionPlanEmployerMatchingContributionPercent</td>
</tr>
<tr>
<td style="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_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 employer matches of the employee's percentage contribution matched.</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_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>R59.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Borrowings (Details) - Sienna Credit Facility [Member] - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Nov. 20, 2024</div></th>
<th class="th"><div>Nov. 19, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Jul. 21, 2021</div></th>
<th class="th"><div>Mar. 13, 2020</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_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [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>
<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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Maximum borrowing capacity</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">$ 10,000<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_DebtInstrumentInterestRateStatedPercentage', window );">Interest rate</a></td>
<td class="nump">9.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6.50%<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_DeferredFinanceCostsGross', window );">Deferred financing costs</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">$ 245<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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Percentage fee on unused borrowings</a></td>
<td class="nump">0.50%<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_tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable', window );">Percentage of eligible accounts receivable</a></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>
</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_tact_DebtInstrumentFinancialCovenantEligibleInventory', window );">Eligible inventory</a></td>
<td class="nump">$ 5,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>
</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_tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage', window );">Percentage of eligible raw material</a></td>
<td class="nump">50.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>
</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_tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage', window );">Percentage of eligible finished goods inventory</a></td>
<td class="nump">60.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>
</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_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Additional borrowing capacity</a></td>
<td class="nump">$ 3,200<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_tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained', window );">Minimum outstanding borrowings to be maintained</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="nump">$ 2,250<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_tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid', window );">Principal amount on which interest is paid</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="nump">$ 2,250<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_tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne', window );">Percentage of premium for prepayment loan prior to March 31, 2025</a></td>
<td class="nump">2.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>
</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_tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo', window );">Percentage of premium for prepayment loan April 1, 2025 through March 31, 2026</a></td>
<td class="nump">1.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>
</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_tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter', window );">Percentage of premium for prepayment loan March 31, 2026 thereafter</a></td>
<td class="nump">0.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>
</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_SecuredDebt', window );">Balance outstanding</a></td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,300<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_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember', window );">Minimum [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>
<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_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [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>
<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_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Additional borrowing capacity</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">$ 750<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_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember', window );">Prime Rate [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>
<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_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [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>
<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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Basis spread on variable rate</a></td>
<td class="nump">1.75%<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_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember', window );">Federal Funds Rate [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>
<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_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [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>
<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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Basis spread on variable rate</a></td>
<td class="nump">2.25%<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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment on or prior to March 31, 2025.</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;">tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment from April 1, 2025 through March 31, 2026.</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;">tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment after March 31, 2026.</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;">tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 percentage of eligible accounts receivable included in the calculation of borrowing base imposed by the financial covenants of the debt 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;">tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentFinancialCovenantEligibleInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 minimum value of eligible raw material and finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt 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;">tact_DebtInstrumentFinancialCovenantEligibleInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 percentage of eligible finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt 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;">tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 percentage of eligible raw material included in the calculation of borrowing base imposed by the financial covenants of the debt 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;">tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 minimum principal amount of outstanding borrowings that must be maintained under the credit facility.</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;">tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 principal amount, whether or not such amount of loans is actually outstanding, on which interest is paid under the credit facility.</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;">tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 points added to the reference rate to compute the variable rate on the debt 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;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="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_DebtInstrumentInterestRateStatedPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contractual interest rate for funds borrowed, under the debt 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(22)(a)(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/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-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_DebtInstrumentInterestRateStatedPercentage</td>
</tr>
<tr>
<td style="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_DeferredFinanceCostsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs.</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 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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-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_DeferredFinanceCostsGross</td>
</tr>
<tr>
<td style="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_LineOfCreditFacilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LineOfCreditFacilityAbstract</td>
</tr>
<tr>
<td style="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_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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(22)(b))<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(19)(b))<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_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="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_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).</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 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 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(22)(b))<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(19)(b))<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_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.</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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</td>
</tr>
<tr>
<td style="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_SecuredDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, including the current and noncurrent portions, of collateralized debt obligations (with maturities initially due after one year or beyond the operating cycle, if longer). Such obligations include mortgage loans, chattel loans, and any other borrowings secured by assets of the borrower.</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 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<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_SecuredDebt</td>
</tr>
<tr>
<td style="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_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember</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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_PrimeRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_VariableRateAxis=us-gaap_PrimeRateMember</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_VariableRateAxis=us-gaap_FederalFundsEffectiveSwapRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_VariableRateAxis=us-gaap_FederalFundsEffectiveSwapRateMember</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>76
<FILENAME>R60.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans, Stock incentive plans (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2024 </div>
<div>Plan </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_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans', window );">Number of stock incentive plans | Plan</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_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Options [Member]</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_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant', window );">Exercise price as a percentage of fair market value of common stock at date of grant</a></td>
<td class="nump">100.00%<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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Term of award</a></td>
<td class="text">10 years<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_EmployeeStockOptionMember', window );">Stock Options [Member] | Minimum [Member]</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_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period</a></td>
<td class="text">2 years<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_EmployeeStockOptionMember', window );">Stock Options [Member] | Maximum [Member]</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_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period</a></td>
<td class="text">4 years<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=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member]</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_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares)</a></td>
<td class="nump">2,900,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Number of shares available for grant (in shares)</a></td>
<td class="nump">655,672<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=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member] | Stock Options [Member]</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_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Term of award</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 exercise price of awards granted under the plans as a percentage of the fair market value of the Company's common stock at the date of grant.</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;">tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 stock incentive plans.</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;">tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_ShareBasedArrangementsToObtainGoodsAndServicesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShareBasedArrangementsToObtainGoodsAndServicesAbstract</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 authorized for issuance 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/exampleRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=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_AwardTypeAxis=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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MaximumMember</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=tact_EquityIncentivePlan2014Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_EquityIncentivePlan2014Member</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>77
<FILENAME>R61.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans, Assumptions used in option valuation calculations (Details) - $ / shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Options [Member]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract', window );"><strong>Assumptions used in valuation model [Abstract]</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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Term of award</a></td>
<td class="text">10 years<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=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract', window );"><strong>Assumptions used in valuation model [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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected option term</a></td>
<td class="text">6 years 1 month 6 days<span></span>
</td>
<td class="text">7 years<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">57.70%<span></span>
</td>
<td class="nump">55.60%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">4.30%<span></span>
</td>
<td class="nump">4.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Dividend yield</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.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_PlanNameAxis=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member] | Stock Options [Member]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract', window );"><strong>Assumptions used in valuation model [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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted average fair value of grants (in dollars per share)</a></td>
<td class="nump">$ 3.98<span></span>
</td>
<td class="nump">$ 4.16<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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Term of award</a></td>
<td class="text">10 years<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=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member] | Restricted Share Units [Member]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract', window );"><strong>Assumptions used in valuation model [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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted average fair value of grants (in dollars per share)</a></td>
<td class="nump">$ 5.81<span></span>
</td>
<td class="nump">$ 7.21<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 risk-free interest rate assumption that is used in valuing an option on its own 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 (f)(2)(iv)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</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)(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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 grant-date fair value of non-vested options outstanding.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=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_AwardTypeAxis=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_PlanNameAxis=tact_EquityIncentivePlan2014Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_EquityIncentivePlan2014Member</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=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>78
<FILENAME>R62.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans, Share-based compensation expense (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_ShareBasedCompensationAbstract', window );"><strong>Share-based compensation [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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit from share-based compensation expense</a></td>
<td class="nump">$ 0.3<span></span>
</td>
<td class="nump">$ 0.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_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and Administrative Expense [Member]</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_ShareBasedCompensationAbstract', window );"><strong>Share-based compensation [Abstract]</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_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">$ 1.2<span></span>
</td>
<td class="nump">$ 0.9<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 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 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 (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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax benefit for recognition of expense 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 (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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShareBasedCompensationAbstract</td>
</tr>
<tr>
<td style="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_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>79
<FILENAME>R63.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans, Stock options (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract', window );"><strong>Remaining Term [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Unrecognized compensation cost related to stock options</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 2,700<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted average period to recognize compensation cost not yet recognized</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">2 years 8 months 12 days<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1', window );">Fair value of all awards vested</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 900<span></span>
</td>
<td class="nump">$ 1,300<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 );">Intrinsic value of stock options exercised</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">3<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 );">Cash received from exercise of stock options</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions', window );">Excess tax benefit in provision for income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 0<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_PlanNameAxis=tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member', window );">2005 Equity Incentive Plan and 2014 Equity Incentive Plan [Member] | Stock Options [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Number of Shares [Roll Forward]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, beginning of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,314,475<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">179,700<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 );">Exercised (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,875)<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 );">Forfeited (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(7,750)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod', window );">Expired (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(109,312)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, end of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,377,113<span></span>
</td>
<td class="nump">1,314,475<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 );">Options vested or expected to vest (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,377,113<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable, end of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">973,963<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted Average Exercise Price [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, beginning of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 8.82<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">6.8<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Forfeited (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">7.11<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice', window );">Expired (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">10.71<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, end of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">8.41<span></span>
</td>
<td class="nump">$ 8.82<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice', window );">Options vested or expected to vest (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">8.41<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Options exercisable, end of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 8.96<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_tact_EquityAwardsAggregateIntrinsicValueAbstract', window );"><strong>Aggregate Intrinsic Value [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Options vested and expected to vest</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Options exercisable, end of period</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract', window );"><strong>Remaining Term [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Options vested and expected to vest</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="text">4 years 1 month 6 days<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Options exercisable, end of period</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="text">2 years 2 months 12 days<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=tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member', window );">2005 Equity Incentive Plan and 2014 Equity Incentive Plan [Member] | Restricted Share Units [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Number of Shares [Roll Forward]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested or expected to vest (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">376,565<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted Average Exercise Price [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice', window );">Options vested or expected to vest (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward', window );"><strong>Number of Units [Roll Forward]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, beginning of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">184,536<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted', window );">Granted (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">267,024<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised', window );">Exercised (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(74,995)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures', window );">Forfeited (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations', window );">Expired (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, end of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">376,565<span></span>
</td>
<td class="nump">184,536<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Stock Price [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Outstanding, beginning of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">$ 7.76<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 );">Granted (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">5.81<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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue', window );">Exercised (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">7.41<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">0<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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue', window );">Expired (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Outstanding, end of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">$ 6.44<span></span>
</td>
<td class="nump">$ 7.76<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_tact_EquityAwardsAggregateIntrinsicValueAbstract', window );"><strong>Aggregate Intrinsic Value [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Restricted stock units vested and expected to vest</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1,540<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_tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract', window );"><strong>Remaining Term [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Restricted stock units vested and expected to vest</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="text">2 years 1 month 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%">
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">weighted average exercise price per share</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</td>
<td style="vertical-align: top;" valign="top">weighted-average contractual remaining term in
              years</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[3]</td>
<td style="vertical-align: top;" valign="top">weighted average grant stock price per share</td>
</tr>
</table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_EquityAwardsAggregateIntrinsicValueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tact_EquityAwardsAggregateIntrinsicValueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the grant date of equity-based award plans other than stock (unit) option plans that were exercised during the 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;">tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for which the right to exercise has lapsed under the terms of the plan agreements.</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;">tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</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 (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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost to be recognized for 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://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 (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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions</td>
</tr>
<tr>
<td style="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_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax benefit 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://www.xbrl.org/2003/role/disclosureRef<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_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</td>
</tr>
<tr>
<td style="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_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_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_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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 equity-based awards excluding options, 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>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (e)(1)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 non-option equity instruments exercised by participants.</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> -Subparagraph (c)(1)(iv)(02)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 under non-option equity instrument agreements for which rights to exercise lapsed.</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)(iv)(04)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 under non-option equity instrument agreements that were cancelled as a result of 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://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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Net number of non-option equity instruments granted to participants.</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> -Subparagraph (c)(1)(iv)(01)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 equity instruments other than options outstanding, including both vested and non-vested instruments.</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)(ii)<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> -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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.</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)(04)<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod</td>
</tr>
<tr>
<td style="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_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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 exercisable or convertible options. 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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_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_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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of the plan that expired.</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)(04)<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of vested 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>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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="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_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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted 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/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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</td>
</tr>
<tr>
<td style="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_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_PlanNameAxis=tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member</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=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_AwardTypeAxis=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_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>80
<FILENAME>R64.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes, Components of income tax expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>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_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="num">$ (154)<span></span>
</td>
<td class="num">$ (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_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="nump">37<span></span>
</td>
<td class="nump">51<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_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">108<span></span>
</td>
<td class="nump">85<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_CurrentIncomeTaxExpenseBenefit', window );">Income taxes current</a></td>
<td class="num">(9)<span></span>
</td>
<td class="nump">135<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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Deferred [Abstract]</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_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">5,991<span></span>
</td>
<td class="nump">825<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_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="nump">293<span></span>
</td>
<td class="nump">132<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_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">20<span></span>
</td>
<td class="nump">63<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_DeferredIncomeTaxExpenseBenefit', window );">Income taxes deferred</a></td>
<td class="nump">6,304<span></span>
</td>
<td class="nump">1,020<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_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">$ 6,295<span></span>
</td>
<td class="nump">$ 1,155<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_EffectiveIncomeTaxRateContinuingOperations', window );">Effective tax rate</a></td>
<td class="num">(176.40%)<span></span>
</td>
<td class="nump">19.60%<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_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract', window );"><strong>Income taxes [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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign income before taxes</a></td>
<td class="nump">$ 79<span></span>
</td>
<td class="nump">$ 322<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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Federal [Member]</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_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract', window );"><strong>Income taxes [Abstract]</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_tact_OperatingLossCarryforwardsNotSubjectToExpiration', window );">Net operating loss carryforwards not subject to expiration</a></td>
<td class="nump">276<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_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State [Member]</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_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract', window );"><strong>Income taxes [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_OperatingLossCarryforwardsSubjectToExpiration', window );">Net operating loss carryforwards subject to expiration</a></td>
<td class="nump">135<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_tact_TaxCreditCarryforwardAmountSubjectToExpiration', window );">Tax credit carryforwards subject to expiration</a></td>
<td class="nump">0<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_TaxCreditCarryforwardAxis=us-gaap_ResearchMember', window );">R&amp;D Credit [Member]</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_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract', window );"><strong>Income taxes [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_TaxCreditCarryforwardAmountSubjectToExpiration', window );">Tax credit carryforwards subject to expiration</a></td>
<td class="nump">$ 903<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_tact_TaxCreditCarryforwardExpirationPeriod', window );">Tax credit carryforwards expiration period</a></td>
<td class="text">20 years<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_tact_OperatingLossCarryforwardsNotSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are not subject to expiration dates.</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;">tact_OperatingLossCarryforwardsNotSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_OperatingLossCarryforwardsSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.</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;">tact_OperatingLossCarryforwardsSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_TaxCreditCarryforwardAmountSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.</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;">tact_TaxCreditCarryforwardAmountSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_TaxCreditCarryforwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining before the tax credit carryforward expires, 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;">tact_TaxCreditCarryforwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.</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 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 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(h)(1)(Note 1))<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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<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_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 foreign 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://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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<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_CurrentForeignTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) pertaining to taxable 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://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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<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_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</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 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 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(h)(1)(Note 1))<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> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<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_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.</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 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 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(h)(1)(Note 1))<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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<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_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_DeferredForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 foreign 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://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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<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_DeferredForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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 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 3: 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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</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 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 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(h)(1)(Note 1))<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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<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_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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/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 2: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10A<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(h)(1))<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract</td>
</tr>
<tr>
<td style="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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</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_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember</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_TaxCreditCarryforwardAxis=us-gaap_ResearchMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxCreditCarryforwardAxis=us-gaap_ResearchMember</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>81
<FILENAME>R65.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income taxes, Deferred tax assets and liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_DeferredTaxAssetsNetAbstract', window );"><strong>Deferred tax assets [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_DeferredTaxAssetsOperatingLossCarryforwardsDomestic', window );">Federal net operating losses</a></td>
<td class="nump">$ 276<span></span>
</td>
<td class="nump">$ 0<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_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">802<span></span>
</td>
<td class="nump">733<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_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal', window );">State net operating losses</a></td>
<td class="nump">135<span></span>
</td>
<td class="nump">84<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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments', window );">Accrued severance</a></td>
<td class="nump">20<span></span>
</td>
<td class="nump">165<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_DeferredTaxAssetsInProcessResearchAndDevelopment', window );">Capitalized R&amp;D expenses</a></td>
<td class="nump">3,708<span></span>
</td>
<td class="nump">3,127<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_DeferredTaxAssetsInventory', window );">Inventory reserves</a></td>
<td class="nump">1,047<span></span>
</td>
<td class="nump">896<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_DeferredTaxAssetsDeferredIncome', window );">Deferred revenue</a></td>
<td class="nump">7<span></span>
</td>
<td class="nump">31<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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves', window );">Warranty reserve</a></td>
<td class="nump">29<span></span>
</td>
<td class="nump">24<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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock compensation expense</a></td>
<td class="nump">853<span></span>
</td>
<td class="nump">790<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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation', window );">Other accrued compensation</a></td>
<td class="nump">165<span></span>
</td>
<td class="nump">404<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_DeferredTaxAssetsTaxCreditCarryforwardsResearch', window );">R&amp;D credit carryforward</a></td>
<td class="nump">903<span></span>
</td>
<td class="nump">695<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_DeferredTaxAssetsOther', window );">Other Assets</a></td>
<td class="nump">379<span></span>
</td>
<td class="nump">360<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_DeferredTaxAssetsGross', window );">Gross deferred tax assets</a></td>
<td class="nump">8,324<span></span>
</td>
<td class="nump">7,309<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_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(8,103)<span></span>
</td>
<td class="num">(719)<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_DeferredTaxAssetsNet', window );">Net deferred tax assets</a></td>
<td class="nump">221<span></span>
</td>
<td class="nump">6,590<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_DeferredTaxLiabilitiesNetAbstract', window );"><strong>Deferred tax 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_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Depreciation and amortization</a></td>
<td class="nump">179<span></span>
</td>
<td class="nump">237<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_DeferredTaxLiabilitiesOther', window );">Other</a></td>
<td class="nump">42<span></span>
</td>
<td class="nump">49<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_DeferredTaxLiabilities', window );">Net deferred tax liabilities</a></td>
<td class="nump">221<span></span>
</td>
<td class="nump">286<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_DeferredTaxAssetsLiabilitiesNet', window );">Total net deferred tax assets</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 6,304<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_DeferredTaxAssetsDeferredIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsDeferredIncome</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</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 740<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/2147482685/740-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_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsInProcessResearchAndDevelopment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from in-process research and development cost acquired in business combination or from joint venture formation or both.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsInProcessResearchAndDevelopment</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsInventory</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without 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/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-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_DeferredTaxAssetsLiabilitiesNet</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-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_DeferredTaxAssetsNet</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DeferredTaxAssetsNetAbstract</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsOperatingLossCarryforwardsDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsOperatingLossCarryforwardsDomestic</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsOperatingLossCarryforwardsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsOperatingLossCarryforwardsForeign</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible state and local operating loss carryforwards.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, 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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsOther</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxCreditCarryforwardsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsTaxCreditCarryforwardsResearch</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from employee compensation.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from severance costs.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from warranty reserves.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax assets for which it is more likely than not that a tax benefit will not be realized.</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 740<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/2147482685/740-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_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 without 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/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-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_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilitiesNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DeferredTaxLiabilitiesNetAbstract</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax liability attributable to taxable temporary differences 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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxLiabilitiesOther</td>
</tr>
<tr>
<td style="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_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax liability attributable to taxable temporary differences from property, plant, and equipment.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-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_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="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>82
<FILENAME>R66.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes, Valuation allowance on deferred tax assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</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_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember', window );">Deferred Income Tax Assets [Member]</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_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>Valuation allowance [Roll Forward]</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_ValuationAllowancesAndReservesBalance', window );">Balance, beginning of period</a></td>
<td class="nump">$ 719<span></span>
</td>
<td class="nump">$ 656<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_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Additions charged to income tax provision</a></td>
<td class="nump">7,384<span></span>
</td>
<td class="nump">63<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_ValuationAllowancesAndReservesBalance', window );">Balance, end of period</a></td>
<td class="nump">8,103<span></span>
</td>
<td class="nump">$ 719<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_ValuationAllowancesAndReservesTypeAxis=tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember', window );">Deferred Tax Assets in United States [Member]</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_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>Valuation allowance [Roll Forward]</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_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Additions charged to income tax provision</a></td>
<td class="nump">$ 7,300<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_MovementInValuationAllowancesAndReservesRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_MovementInValuationAllowancesAndReservesRollForward</td>
</tr>
<tr>
<td style="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_ValuationAllowancesAndReservesBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation and qualifying accounts and reserves.</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 S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<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 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-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_ValuationAllowancesAndReservesBalance</td>
</tr>
<tr>
<td style="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_ValuationAllowancesAndReservesChargedToCostAndExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 in valuation and qualifying accounts and reserves from charge to cost and 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/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-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_ValuationAllowancesAndReservesChargedToCostAndExpense</td>
</tr>
<tr>
<td style="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_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember</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_ValuationAllowancesAndReservesTypeAxis=tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ValuationAllowancesAndReservesTypeAxis=tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember</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>83
<FILENAME>R67.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes, Statutory to effective tax rate reconciliation (Details)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract', window );"><strong>Effective Tax Rate Reconciliation [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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Federal statutory tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<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_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch', window );">R&amp;D credit</a></td>
<td class="nump">8.80%<span></span>
</td>
<td class="num">(5.90%)<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_EffectiveIncomeTaxRateReconciliationFdiiPercent', window );">Foreign-derived intangible income deduction</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(1.70%)<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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Stock award excess tax benefit</a></td>
<td class="num">(0.70%)<span></span>
</td>
<td class="nump">0.40%<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_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes', window );">State income taxes, net of federal income taxes</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">2.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_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment', window );">Business meals and entertainment</a></td>
<td class="num">(0.40%)<span></span>
</td>
<td class="nump">0.30%<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_tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent', window );">Executive compensation limitation</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.60%<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_EffectiveIncomeTaxRateReconciliationTaxContingencies', window );">Uncertain tax positions</a></td>
<td class="num">(0.20%)<span></span>
</td>
<td class="nump">0.50%<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_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Stock option cancellations</a></td>
<td class="num">(2.00%)<span></span>
</td>
<td class="nump">0.60%<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_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="num">(206.90%)<span></span>
</td>
<td class="nump">1.00%<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_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="nump">3.00%<span></span>
</td>
<td class="nump">0.30%<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_EffectiveIncomeTaxRateContinuingOperations', window );">Effective tax rate</a></td>
<td class="num">(176.40%)<span></span>
</td>
<td class="nump">19.60%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to limitation on executive compensation.</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;">tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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/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 2: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 domestic federal statutory tax rate applicable to pretax income (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/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 2: 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 3: 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.1.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-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 S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the valuation allowance for deferred tax 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> -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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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 4: 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)(2))<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_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationFdiiPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reported income tax benefit from difference to income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operations, attributable to foreign-derived intangible income (FDII).</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 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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to meals and entertainment 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/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<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 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)(2))<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_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible 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://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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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 4: 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)(2))<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_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.</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 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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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 4: 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)(2))<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_EffectiveIncomeTaxRateReconciliationOtherAdjustments</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after 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/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<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 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -SubTopic 740<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479176/718-740-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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (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/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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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 4: 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)(2))<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_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationTaxContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to income tax contingencies. Includes, but not limited to, domestic tax contingency, foreign tax contingency, state and local tax contingency, and other 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/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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(8)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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 4: 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)(2))<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_EffectiveIncomeTaxRateReconciliationTaxContingencies</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax 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/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 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<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 4: 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)(2))<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_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>84
<FILENAME>R68.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes, Unrecognized tax benefits (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward', window );"><strong>Unrecognized tax benefits [Roll Forward]</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_UnrecognizedTaxBenefits', window );">Unrecognized tax benefits, beginning of period</a></td>
<td class="nump">$ 197<span></span>
</td>
<td class="nump">$ 142<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_UnrecognizedTaxBenefitsPeriodIncreaseDecrease', window );">Tax positions taken during the current period</a></td>
<td class="nump">31<span></span>
</td>
<td class="nump">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_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions', window );">Reductions for tax positions in prior years</a></td>
<td class="num">(25)<span></span>
</td>
<td class="nump">0<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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations', window );">Lapse of statute of limitations</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(28)<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_UnrecognizedTaxBenefits', window );">Unrecognized tax benefits, end of period</a></td>
<td class="nump">$ 203<span></span>
</td>
<td class="nump">$ 197<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_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 unrecognized tax benefits.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<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 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<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 10B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-10B<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_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<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 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<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_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 unrecognized tax benefits attributable to uncertain tax positions taken in tax returns.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<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_UnrecognizedTaxBenefitsPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.</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 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R69.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per share (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_EarningsPerShareAbstract', window );"><strong>Earnings per share [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>
<td class="text">&#160;<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) income</a></td>
<td class="num">$ (7,957)<span></span>
</td>
<td class="num">$ (551)<span></span>
</td>
<td class="num">$ (319)<span></span>
</td>
<td class="num">$ (1,036)<span></span>
</td>
<td class="num">$ (62)<span></span>
</td>
<td class="nump">$ 906<span></span>
</td>
<td class="nump">$ 765<span></span>
</td>
<td class="nump">$ 3,139<span></span>
</td>
<td class="num">$ (9,863)<span></span>
</td>
<td class="nump">$ 4,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_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract', window );"><strong>Shares [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>
<td class="text">&#160;<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 );">Basic: Weighted average common shares outstanding (in shares)</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">9,997<span></span>
</td>
<td class="nump">9,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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Add: Dilutive effect of outstanding equity awards as determined by the treasury stock method (in shares)</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">0<span></span>
</td>
<td class="nump">70<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted: Weighted average common and common equivalent shares outstanding (in shares)</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">9,997<span></span>
</td>
<td class="nump">10,021<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_EarningsPerShareBasicAbstract', window );"><strong>Net (loss) income per common share [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>
<td class="text">&#160;<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_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="num">$ (0.79)<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
<td class="num">$ (0.03)<span></span>
</td>
<td class="num">$ (0.1)<span></span>
</td>
<td class="num">$ (0.01)<span></span>
</td>
<td class="nump">$ 0.09<span></span>
</td>
<td class="nump">$ 0.08<span></span>
</td>
<td class="nump">$ 0.32<span></span>
</td>
<td class="num">$ (0.99)<span></span>
</td>
<td class="nump">$ 0.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_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="num">$ (0.79)<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
<td class="num">$ (0.03)<span></span>
</td>
<td class="num">$ (0.1)<span></span>
</td>
<td class="num">$ (0.01)<span></span>
</td>
<td class="nump">$ 0.09<span></span>
</td>
<td class="nump">$ 0.08<span></span>
</td>
<td class="nump">$ 0.31<span></span>
</td>
<td class="num">$ (0.99)<span></span>
</td>
<td class="nump">$ 0.47<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 );">Option Awards [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>
<td class="text">&#160;<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_EarningsPerShareReconciliationAbstract', window );"><strong>Earnings per share [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>
<td class="text">&#160;<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)</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">1,400<span></span>
</td>
<td class="nump">1,100<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_RestrictedStockMember', window );">Restricted Stock Awards [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>
<td class="text">&#160;<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_EarningsPerShareReconciliationAbstract', window );"><strong>Earnings per share [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>
<td class="text">&#160;<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)</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">300<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_PerformanceSharesMember', window );">Performance Stock Awards [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>
<td class="text">&#160;<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_EarningsPerShareReconciliationAbstract', window );"><strong>Earnings per share [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>
<td class="text">&#160;<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)</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">100<span></span>
</td>
<td class="nump">0<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_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_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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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 19: 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 20: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_EarningsPerShareBasicAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EarningsPerShareBasicAbstract</td>
</tr>
<tr>
<td style="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_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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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 19: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_EarningsPerShareReconciliationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EarningsPerShareReconciliationAbstract</td>
</tr>
<tr>
<td style="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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</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 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480454/718-10-45-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 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-22<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-23<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-28A<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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 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(20))<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 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 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 10: 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 11: 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 12: 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 13: 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 14: 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 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 (b)<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 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: 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 18: 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 19: 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 20: 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 21: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<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)(iv))<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)(5))<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 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 33: 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 34: 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 35: 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 36: 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 37: 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_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>
<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=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestrictedStockMember</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=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PerformanceSharesMember</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>86
<FILENAME>R70.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.1</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 (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1">180 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2019</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>Stock repurchase program [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_StockRepurchasedDuringPeriodShares', window );">Common stock repurchased (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,044,842<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 );">Value of common stock repurchased</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 32.1<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 purchase price of common stock repurchased (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7.94<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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>R71.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Geographic area information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 10,231<span></span>
</td>
<td class="nump">$ 10,867<span></span>
</td>
<td class="nump">$ 11,599<span></span>
</td>
<td class="nump">$ 10,687<span></span>
</td>
<td class="nump">$ 13,265<span></span>
</td>
<td class="nump">$ 17,190<span></span>
</td>
<td class="nump">$ 19,906<span></span>
</td>
<td class="nump">$ 22,270<span></span>
</td>
<td class="nump">$ 43,384<span></span>
</td>
<td class="nump">$ 72,631<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_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">1,818<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,421<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,818<span></span>
</td>
<td class="nump">2,421<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 [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>
<td class="text">&#160;<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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">33,485<span></span>
</td>
<td class="nump">58,060<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=tact_InternationalMember', window );">International [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>
<td class="text">&#160;<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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">$ 9,899<span></span>
</td>
<td class="nump">$ 14,571<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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Geographic Concentration Risk [Member] | International [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>
<td class="text">&#160;<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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_ConcentrationRiskPercentage1', window );">Concentration risk percentage</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">23.00%<span></span>
</td>
<td class="nump">20.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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Geographic Concentration Risk [Member] | Europe [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>
<td class="text">&#160;<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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_ConcentrationRiskPercentage1', window );">Concentration risk percentage</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">55.00%<span></span>
</td>
<td class="nump">64.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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Geographic Concentration Risk [Member] | Pacific Rim [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>
<td class="text">&#160;<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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_ConcentrationRiskPercentage1', window );">Concentration risk percentage</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">34.00%<span></span>
</td>
<td class="nump">29.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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Geographic Concentration Risk [Member] | Canada [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>
<td class="text">&#160;<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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_ConcentrationRiskPercentage1', window );">Concentration risk percentage</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">10.00%<span></span>
</td>
<td class="nump">4.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_srt_ConsolidationItemsAxis=srt_ReportableGeographicalComponentsMember', window );">Reportable Geographical Components [Member] | United States [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>
<td class="text">&#160;<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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">$ 33,485<span></span>
</td>
<td class="nump">$ 58,060<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_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">831<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">945<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">831<span></span>
</td>
<td class="nump">945<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_ConsolidationItemsAxis=srt_ReportableGeographicalComponentsMember', window );">Reportable Geographical Components [Member] | International [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>
<td class="text">&#160;<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_GeographicAreasRevenuesFromExternalCustomersAbstract', window );"><strong>Geographical area information [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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">9,899<span></span>
</td>
<td class="nump">14,571<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_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">$ 987<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,476<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">$ 987<span></span>
</td>
<td class="nump">$ 1,476<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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<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_GeographicAreasRevenuesFromExternalCustomersAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_GeographicAreasRevenuesFromExternalCustomersAbstract</td>
</tr>
<tr>
<td style="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_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_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/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 2: 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 3: 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 4: 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 5: 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 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/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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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_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=tact_InternationalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_InternationalMember</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_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_GeographicConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_GeographicConcentrationRiskMember</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_EuropeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EuropeMember</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=tact_PacificRimMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_PacificRimMember</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_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CA</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_ConsolidationItemsAxis=srt_ReportableGeographicalComponentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ConsolidationItemsAxis=srt_ReportableGeographicalComponentsMember</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>88
<FILENAME>R72.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_LeasesAbstract', window );"><strong>Leases [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_OperatingLeaseExpense', window );">Operating lease expense</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,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_CashFlowOperatingActivitiesLesseeAbstract', window );"><strong>Cash flows related to operating leases [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_OperatingLeasePayments', window );">Operating cash outflows from leases</a></td>
<td class="nump">$ 1,022<span></span>
</td>
<td class="nump">$ 1,013<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_LesseeOperatingLeaseDescriptionAbstract', window );"><strong>Operating lease weighted average remaining lease term and discount rate [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_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term (in years)</a></td>
<td class="text">1 year 2 months 12 days<span></span>
</td>
<td class="text">1 year 8 months 12 days<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_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate</a></td>
<td class="nump">7.70%<span></span>
</td>
<td class="nump">4.40%<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_OperatingLeaseLiabilitiesPaymentsDueAbstract', window );"><strong>Maturity of operating lease liabilities [Abstract]</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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="nump">$ 1,014<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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2026</a></td>
<td class="nump">237<span></span>
</td>
<td class="text">&#160;<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_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total undiscounted lease payments</a></td>
<td class="nump">1,251<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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less imputed interest</a></td>
<td class="nump">65<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_OperatingLeaseLiability', window );">Total lease liabilities</a></td>
<td class="nump">$ 1,186<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_CashFlowOperatingActivitiesLesseeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CashFlowOperatingActivitiesLesseeAbstract</td>
</tr>
<tr>
<td style="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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseDescriptionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LesseeOperatingLeaseDescriptionAbstract</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 undiscounted obligation for lease payment for 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 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 undiscounted obligation for lease payments in excess of discounted obligation for lease payments for 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 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="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_OperatingLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating lease expense. Excludes sublease income.</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 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-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_OperatingLeaseExpense</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiabilitiesPaymentsDueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OperatingLeaseLiabilitiesPaymentsDueAbstract</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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.</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_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="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_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</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 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<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 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_OperatingLeasePayments</td>
</tr>
<tr>
<td style="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_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 discount rate for operating lease calculated at point in time.</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 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<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 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="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_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lease term for operating lease, 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/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<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 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-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_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<FILENAME>R73.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.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Quarterly results of operations (unaudited) (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly results of operations (unaudited) [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 10,231<span></span>
</td>
<td class="nump">$ 10,867<span></span>
</td>
<td class="nump">$ 11,599<span></span>
</td>
<td class="nump">$ 10,687<span></span>
</td>
<td class="nump">$ 13,265<span></span>
</td>
<td class="nump">$ 17,190<span></span>
</td>
<td class="nump">$ 19,906<span></span>
</td>
<td class="nump">$ 22,270<span></span>
</td>
<td class="nump">$ 43,384<span></span>
</td>
<td class="nump">$ 72,631<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_GrossProfit', window );">Gross profit</a></td>
<td class="nump">4,521<span></span>
</td>
<td class="nump">5,227<span></span>
</td>
<td class="nump">6,110<span></span>
</td>
<td class="nump">5,624<span></span>
</td>
<td class="nump">6,371<span></span>
</td>
<td class="nump">8,916<span></span>
</td>
<td class="nump">10,858<span></span>
</td>
<td class="nump">12,255<span></span>
</td>
<td class="nump">21,482<span></span>
</td>
<td class="nump">38,400<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) income</a></td>
<td class="num">$ (7,957)<span></span>
</td>
<td class="num">$ (551)<span></span>
</td>
<td class="num">$ (319)<span></span>
</td>
<td class="num">$ (1,036)<span></span>
</td>
<td class="num">$ (62)<span></span>
</td>
<td class="nump">$ 906<span></span>
</td>
<td class="nump">$ 765<span></span>
</td>
<td class="nump">$ 3,139<span></span>
</td>
<td class="num">$ (9,863)<span></span>
</td>
<td class="nump">$ 4,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_EarningsPerShareAbstract', window );"><strong>Net (loss) income per common share:</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_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="num">$ (0.79)<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
<td class="num">$ (0.03)<span></span>
</td>
<td class="num">$ (0.1)<span></span>
</td>
<td class="num">$ (0.01)<span></span>
</td>
<td class="nump">$ 0.09<span></span>
</td>
<td class="nump">$ 0.08<span></span>
</td>
<td class="nump">$ 0.32<span></span>
</td>
<td class="num">$ (0.99)<span></span>
</td>
<td class="nump">$ 0.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_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="num">$ (0.79)<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
<td class="num">$ (0.03)<span></span>
</td>
<td class="num">$ (0.1)<span></span>
</td>
<td class="num">$ (0.01)<span></span>
</td>
<td class="nump">$ 0.09<span></span>
</td>
<td class="nump">$ 0.08<span></span>
</td>
<td class="nump">$ 0.31<span></span>
</td>
<td class="num">$ (0.99)<span></span>
</td>
<td class="nump">$ 0.47<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_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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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 19: 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 20: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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 19: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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/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 2: 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 3: 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 4: 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 5: 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 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 (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 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)(iii)(A))<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)(4)(iv))<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)(5))<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 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 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)(A))<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)(iii)(B))<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)(iv))<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)(5))<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/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_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/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 2: 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 3: 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 4: 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 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(20))<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 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 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 10: 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 11: 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 12: 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 13: 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 14: 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 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 (b)<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 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: 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 18: 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 19: 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 20: 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 21: 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 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)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: 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 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)(iii)(A))<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 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 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)(5))<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 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 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)(iii)(A))<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)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<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)(iv))<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)(5))<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 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 33: 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 34: 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 35: 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 36: 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 37: 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_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="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_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/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 2: 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 3: 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 4: 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 5: 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 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/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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<FILENAME>R74.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.1</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 (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Jun. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 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_tact_RelatedPartyTransactionAbstract', window );"><strong>Related Party Transaction [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Sales revenue</a></td>
<td class="nump">$ 10,231<span></span>
</td>
<td class="nump">$ 10,867<span></span>
</td>
<td class="nump">$ 11,599<span></span>
</td>
<td class="nump">$ 10,687<span></span>
</td>
<td class="nump">$ 13,265<span></span>
</td>
<td class="nump">$ 17,190<span></span>
</td>
<td class="nump">$ 19,906<span></span>
</td>
<td class="nump">$ 22,270<span></span>
</td>
<td class="nump">$ 43,384<span></span>
</td>
<td class="nump">$ 72,631<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_AccountsReceivableNetCurrent', window );">Accounts receivable</a></td>
<td class="nump">6,507<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">9,824<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">6,507<span></span>
</td>
<td class="nump">9,824<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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party [Member] | The One Group Hospitality, Inc [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>
<td class="text">&#160;<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_tact_RelatedPartyTransactionAbstract', window );"><strong>Related Party Transaction [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>
<td class="text">&#160;<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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Sales revenue</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">117<span></span>
</td>
<td class="nump">246<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_AccountsReceivableNetCurrent', window );">Accounts receivable</a></td>
<td class="nump">$ 5<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">$ 34<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<span></span>
</td>
<td class="nump">$ 34<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_RelatedPartyTransactionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tact_RelatedPartyTransactionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_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_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/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 2: 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 3: 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 4: 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 5: 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 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/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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</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=tact_TheOneGroupHospitalityIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tact_TheOneGroupHospitalityIncMember</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>EXCEL
<SEQUENCE>91
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( '.+>%I&QTU(E0   ,T    0    9&]C4')O<',O87!P+GAM
M;$W/30O", P&X+]2=K>9BAZD#D0]BIZ\SRYUA;8I;83Z[^T$/VYY><@;HBZ)
M(B:VF$7Q+N1M,S+'#4#6(_H^R\JABJ'D>ZXQW8&,L1H/I!\> \.B;=> A3$,
M.,SBM[#IU"Y&9W7/ED)WLCI1)L/B6#0ZL2<?J]P<"A#G>B4^BQ-+.9<K!?^+
M4\L54Y[FRF_\9 6_![H74$L#!!0    ( '.+>%J'Z/=,\@   "L"   1
M9&]C4')O<',O8V]R92YX;6S-DL%.PS ,AE\%Y=ZZ36&@J.L%Q DD)":!N$6)
MMT4T3908M7M[TK!U('@ CK'_?/XLN55>*!?P*3B/@0S&B\GV0Q3*K]F>R N
MJ/9H92Q38DC-K0M64GJ&'7BIWN4.@5?5"BR2U)(DS,#"+T36M5H)%5"2"T>\
M5@O>?X0^P[0"[-'B0!'JL@;6S1/]8>I;. -F&&&P\:N >B'FZI_8W %V3$[1
M+*EQ',NQR;FT0PVOCP_/>=W"#)'DH##]BD;0P>.:G2:_-+=WFWO6\8I?%553
M\,L-KP6_%LWJ;7;]X7<6MDZ;K?EGQC??C$^"70N_[J+[!%!+ P04    " !S
MBWA:F5R<(Q &  "<)P  $P   'AL+W1H96UE+W1H96UE,2YX;6SM6EMSVC@4
M?N^OT'AG]FT+QC:!MK03<VEVV[29A.U.'X416(UL>621A'^_1S80RY8-[9)-
MNIL\!"SI^\Y%1^?H.'GS[BYBZ(:(E/)X8-DOV]:[MR_>X%<R)!%!,!FGK_#
M"J5,7K5::0##.'W)$Q+#W(*+"$MX%,O67.!;&B\CUNJTV]U6A&ELH1A'9&!]
M7BQH0-!445IO7R"TY1\S^!7+5(UEHP$35T$FN8BT\OELQ?S:WCYES^DZ'3*!
M;C ;6"!_SF^GY$Y:B.%4PL3 :F<_5FO'T=)(@(+)?90%NDGVH],5"#(-.SJ=
M6,YV?/;$[9^,RMIT-&T:X./Q>#BVR]*+<!P$X%&[GL*=]&R_I$$)M*-IT&38
M]MJND::JC5-/T_=]W^N;:)P*C5M/TVMWW=..B<:MT'@-OO%/A\.NB<:KT'3K
M:28G_:YKI.D6:$)&X^MZ$A6UY4#3( !8<';6S-(#EEXI^G64&MD=N]U!7/!8
M[CF)$?[&Q036:=(9EC1&<IV0!0X -\313%!\KT&VBN#"DM)<D-;/*;50&@B:
MR('U1X(AQ=RO_?67N\FD,WJ=?3K.:Y1_::L!I^V[F\^3_'/HY)^GD]=-0LYP
MO"P)\?LC6V&')VX[$W(Z'&="?,_V]I&E)3+/[_D*ZTX\9Q]6EK!=S\_DGHQR
M([O=]EA]]D]';B/7J<"S(M>41B1%G\@MNN01.+5)#3(3/PB=AIAJ4!P"I DQ
MEJ&&^+3&K!'@$WVWO@C(WXV(]ZMOFCU7H5A)VH3X$$8:XIQSYG/1;/L'I4;1
M]E6\W*.76!4!EQC?-*HU+,76>)7 \:V</!T3$LV4"P9!AI<D)A*I.7Y-2!/^
M*Z7:_IS30/"4+R3Z2I&/:;,CIW0FS>@S&L%&KQMUAVC2/'K^!?F<-0H<D1L=
M F<;LT8AA&F[\!ZO)(Z:K<(1*T(^8ADV&G*U%H&V<:F$8%H2QM%X3M*T$?Q9
MK#63/F#([,V1=<[6D0X1DEXW0CYBSHN0$;\>ACA*FNVB<5@$_9Y>PTG!Z(++
M9OVX?H;5,VPLCO='U!=*Y \FIS_I,C0'HYI9";V$5FJ?JH<T/J@>,@H%\;D>
M/N5Z> HWEL:\4*Z">P'_T=HWPJOX@L Y?RY]SZ7ON?0]H=*W-R-]9\'3BUO>
M1FY;Q/NN,=K7-"XH8U=RS<C'5*^3*=@YG\#L_6@^GO'M^MDDA*^:62TC%I!+
M@;-!)+C\B\KP*L0)Z&1;)0G+5--E-XH2GD(;;NE3]4J5U^6ON2BX/%ODZ:^A
M=#XLS_D\7^>TS0LS0[=R2^JVE+ZU)CA*]+',<$X>RPP[9SR2';9WH!TU^_9=
M=N0CI3!3ET.X&D*^ VVZG=PZ.)Z8D;D*TU*0;\/YZ<5X&N(YV02Y?9A7;>?8
MT='[Y\%1L*/O/)8=QXCRHB'NH8:8S\-#AWE[7YAGE<90-!1M;*PD+$:W8+C7
M\2P4X&1@+: '@Z]1 O)256 Q6\8#*Y"B?$R,1>APYY=<7^/1DN/;IF6U;J\I
M=QEM(E(YPFF8$V>KRMYEL<%5'<]56_*POFH]M!5.S_Y9K<B?#!%.%@L22&.4
M%Z9*HO,94[[G*TG$53B_13.V$I<8O./FQW%.4[@2=K8/ C*YNSFI>F4Q9Z;R
MWRT,"2Q;B%D2XDU=[=7GFYRN>B)V^I=WP6#R_7#)1P_E.^=?]%U#KG[VW>/Z
M;I,[2$R<><41 71% B.5' 86%S+D4.Z2D 83 <V4R43P H)DIAR F/H+O?(,
MN2D5SJT^.7]%+(.&3E[2)1(4BK ,!2$7<N/O[Y-J=XS7^BR!;814,F35%\I#
MB<$],W)#V%0E\Z[:)@N%V^)4S;L:OB9@2\-Z;ITM)__;7M0]M!<]1O.CF> >
MLX=SFWJXPD6L_UC6'ODRWSEPVSK> U[F$RQ#I'[!?8J*@!&K8KZZKT_Y)9P[
MM'OQ@2";_-;;I/;=X Q\U*M:I60K$3]+!WP?D@9CC%OT-%^/%&*MIK&MQMHQ
M#'F 6/,,H68XWX=%FAHSU8NL.8T*;T'50.4_V]0-:/8--!R1!5XQF;8VH^1.
M"CS<_N\-L,+$CN'MB[\!4$L#!!0    ( '.+>%J!D1,FS <  $@S   8
M>&PO=V]R:W-H965T<R]S:&5E=#$N>&ULM9MK<]HX%(;_BH;M[+0S(?@").DF
MF2$F:=FF:3;0=KJ=_:#8 CRU+5:6<_GW>WP!Q1GY@'=$/S08?%ZL!TE^7]D^
M?>3B5[ID3)*G.$K2L\Y2RM7[7B_UERRFZ2%?L00^F7,14PF;8M%+5X+1H"B*
MHYYC6<->3,.D<WY:O'<KSD]Y)J,P8;>"I%D<4_%\P2+^>-:Q.^LW[L+%4N9O
M],Y/5W3!IDQ^7=T*V.IM5((P9DD:\H0(-C_KC.SWXWY14.SQ+62/Z8O7)&_*
M/>>_\HU)<-:Q\B-B$?-E+D'ASP/S6!3E2G <_U:BG<UWYH4O7Z_5KXK&0V/N
M:<H\'GT/ [D\ZQQW2,#F-(OD'7_\R*H&#7(]GT=I\3]Y+/<=N!WB9ZGD<54,
M1Q"'2?F7/E4@7A3TK88"IRIP7A78_88"MRIP=RWH5P7]@DS9E(+#F$IZ?BKX
M(Q'YWJ"6ORA@%M70_##)?_>I%/!I"'7R?,S]#'Y&26@2D,M$AO*93)*R/^6_
M2Y=\G8[)VS?O3GL2OBXOZOF5]$4I[31(VP[YS!.Y3$$W8$%=H ?'N3E89WVP
M%PZJ.&;^(7'M ^)83E]S0!Y>_IF*0V+WB_*!IGR,E_^9)?#MEN[;:ZUQ-^C=
M0L]MT//X Q/DY^@^E0*Z_S\ZPJ5"7Z^0SPGOTQ7UV5D'!GW*Q /KG/_^FSVT
M_M#1,2DV-B16(]??D.MCZJK3SIY73(<-+[>M[B<='[2J+1]#8C4^@PV? =K
M$< )"D!7$5WH .'U<QJE.JX>6M:6D"&Q&J'AAM!PMQXT2I*,1N2.K;B0.E*X
MCA29%A1:U1:4(;$:J*,-J*/=0-TR$?+\%!$0.-%H1]T6I?7DW3A[H_5MH1D2
MJT$[WD [1IOJ94(4HR],?>A</Q@5*#A<K=NUG:YKZXBAA6V)&1*K$3O9$#O9
MK9N]1'8%;Z8Z7KA64_="J]K",B16@V5;RK19K7!5@[,1V!:YJQ\Z7GA16V"F
MU.K$7MA<>T?+("B$EL+;-D_Z6\0:SX]X76MDAM3JR!R%S$%;6:6!JS!BY":+
M[YG0HL)%K*YCVXYV\L(K6\,RI%:'I;R\C1K>-:P[M@AS.P\=[8;&VLE^B]#L
M;G0S'7DS,KOT/MY\N?[R87(Y)9,;3XO0J*4WI59'J$R]C=OR"J$'HU3 G#:!
MT/A$/K%G+41<RK(LV[*/7,O54C-J]$VIU:DIJV_C7GV3V7TN8#HK4OL!F4JP
M&H0+XO$,< )5'NA[(ZX^OM0"-)H#3*G5 :HD8.,6O@(XHT]D$D#?"^>A7ZY]
M(),>+FD-NW9_,!P>6UIZ1L.!*;4Z/14/;-S55_1&00#JZ<'Z!;F&_<B71-_G
M<$FH(A]I#+]%,1=H?P$/UV@-<1]IP59QP<8=/@IQ]LBU$'%)Q[5/R/=E*!,&
MP@\LR1C,"ED(LX)[H05J-$N84JL#56G"QB/ :Z!>O@6SX8P_)EJ8N%S9&[74
MC(8*4VKUQ565*AP\!KRFMCF)W K^$":^=C!OT?1FVG5:H]'"E%H=FXH6#IX&
M7F.[Y:D$__)WN&H\ZVY1M(8#^UC+S6B^,*56YZ;RA8-'@V)0C@2CS9AP 4=O
M[_"JUI#VD2L<E2L</ Y<\R+?+WF"A; M(L>#DRZ8$:T;P4M;T]I'A'!4A'!P
MWS\+)815/B>V\_;^'9DR/Q/0R[3(<"6/QS%8P%1R_]<!65%!'FB4,?+&.K1L
MLF*"I$LJM(L N')KHON(%XZ*%PX> &:"!F&R(-/G^)Y'6I!;!$8-IP"C&<*4
M6IV2RA .;OC7'8U</OE+FBQ88_K?(G0SFHY'?VEY&4T-IM3JO%1J<'9*#=]9
M%'5_)6#*8*C2%.:X@$S2-&N8Y'#-&YU-]O"BUMCVD1,<E1.<G7+"-QY!J*>B
M7)L3VA7?+4H-L(QF %-J=5@J S@[98#UM9ARL;>8RL#6ZI?)MRC^8+HJ#Z]J
M36T?&<!5&<#=*0-,\MQ=WI.37[6B:XS:>Q1PQ09J>%7KNQ'V$0%<%0'<G2)
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
M]KTSH,]Q!LI1QIUT;<FG84R'&Q@7+&-X1'9I;PWH5UJ#MF \F[SCA-9QON"
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
M4<3)LFOT&C>!I^)UP%-*=N*@CY22!6//:C"*NX:E")&,1%(A8&BV)"!9IH"
MQJ\2TZBV5(F'_3WZK=8.6A98D(!EW])8)EVC;:"8+/$FDP]L=T=*/4V%%[%,
MZ"_:E;&6@:*-D"PODX%!GM*BQ2]E'0X2&MX'"7:98!\GN!\D.&6"HX46S+2L
M 9;8[W"V0UQ% YKJZ-KH;%"34G6*H>2PFD*>](/I))S>CP:]^7" PCDTX^%D
M'J+I+0JFX]G#\&XX"4=/0W1^/PW#"S2:P/007:''<(#.SR[0&4HIFB=L(S"-
M1<>40$I!FU%)H%\0L#\@T+#1F%&9"#2D,8G? IB@II)D[R7U[9.( Q)=(Z=Q
MB6S+=FL(!?^>[IR@XU05=C2>\W\K_+VW$)+#7_ZCKJ;%EF[]ENKFWX@UCDC7
M@*LM"-\2P__\J>%97^OJ\9_ WE3'K:KCGD+W)V!4YQD3X@+^HXCEI$YM ='4
M$,J6MO[5E[8'A[,]E/$^RFVY[2KH#;UF1:]YDAY8!1@!A9O(.:'1*X(CH2+#
MA07%/^&"@J7)2T1!!ULBB5_J!!2;>(<"FD?LWX<X5CUWK^+NG>0>L!P.+%&.
MNR5_+[)76^3V$<WW46ZK=5QD\\"/<L)7VJ8%BMB&RN(>5[/%2]"'ET [YM$\
MO! ];8SF'YCB>1ECODJI0!E9 J1UW0)*O+#L8B#96KO>@DGP4-U-X)4C7 7
M^I(QN1^H#:IWT_\-4$L#!!0    ( '.+>%IV8\YWX@8  $XM   8    >&PO
M=V]R:W-H965T<R]S:&5E=#8N>&ULS5IK;]LV%/TKA%=L*=#4HM[N$@.)]4B
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
MNH2ED;C1A<!O]U+,FKHV"?!'P,#H3<0G'B7EP/+V&U&#758<>YNC%,8/V:Y
M'/R=1!+DY*_\%F(!5$L:ZG87NV('0G%J83+S[%C]"F[#X!6>MNN!_NJGF""!
MW*;>24K9R4$#)8?+H?Y5Z<."W @YU(NLCPQ2[I%6.T[>7D+_+V6PQUW\MVLI
M>B^Z; ]JA_0CO^A'!AD&L.J?72T-6 "@ 0"@4PHZL")T)/J]M!+(9 1!QZE
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
MIFPJ4\ YN%BO%?32)L'!25*DRUDB[-!*02R+Z[Q?9\F:-Q.)$2^NE?BGP.Z
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
MTI:;.[G[#(=Z1I:72Z[=+]EUO@F^F+?:R/H0C';-1+?2_>$[G 1,PV<"XD-
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
MCW\[!:!<I.^E2@(^7YS.QAO@><1F) ,E$,"H:B:$A.M3 K!BF>(G4#RC56H
M1,=HX<')PX_(NR0]GAPAX=6J-!F*#Q28SAE8,2J7*X&E2F5SF%@O5CSPK2)W
MN2P"X&H"JJ"4BO)0$#<5-_F914:#!W5/O\-4[A9@MR"B9]5@M%6#HEN#%&$N
M;I7T '!/*LBAN"0\-M_M#QD0=#+9-^2:D?^#(GH/RLZB4M-N'C<^<2+RO+JN
MM%:?1X*RI_5ZVY%.=(*QY5%%B5[<!XQ?(G9+PA-@4YG[ND!;6Y'),NU9B@E%
MWJP6O O( I43,T)7.<$J0IATV0*[T/1 NR?YTVQ'+ ZX'=9/&JBA_[O+%>GM
MG,R&O8]Y@Z$ADP_#7@%!I:7.-&0U*( K+(U%WCI;(YF!0%1 0%M0,W[ @VT*
MB%;0F.& ]HP=B*1DO"'Y!6:02>J3L+*T*FLE$ZH!;W$/[ Y>JI+)Z5MLB]AM
M'*)7S4A22E]MLFG?AYTQ:+6&>&)K4 ^$1:7).(W8)[M.#NP.(?!GI;@P4%)4
MD:Y$&#9<7$&\:..Z5O)2TA(T##<8]&J]7!]H54D12,+VD8:\M\9?U^'C/; R
M%%_K[;TRM.(:T-V(F_5T.'F5'?6JE&VA4JO0$#TR$F((7(/,74FFERTP]7JE
MU4*\O\/21N\NQ)?%0L<XGU.'2H<%84X+&X05OMV"P7G:8K1K^8O*6F@(KBSY
M#(I?S2H7[Y#$NE&V+:EWW#VF# 1IR%LV]!KGPN6  :+J,B?IJA'"P18Q?F*J
ME^AQU0T+61<,H]K=HYYKX3=,)9YO=)4-\^W[AM'T6<-H>G@8\0[9JY!OS[RJ
M[J()WT710D]22SMB6B9J]S[)ZP7A)[\UJPKR,0R=;3"TVA%.-W/QN\+;"[.1
M&L2 X#D3<HOE?S<HI]5:OT\^!9;:2H5[1KUC;BXM%4)Q_+KP1V\*CC<7D4$
MBGK![-6QTJX%!KC\:D[=LP9.2\LNT!T0I.Z;-[T=\\;]W\R;Z2/SINWYKEG#
M4^-IHT7OFRR'ZX-O[F$Y"25"[>2 QFA?50US"=L4G C[*.ZC8$0E2=]JQ]WS
MP6TO(A2*#J#SW49:&%TI&+6%0V^FRVQ0H0I5 ,$*O>>1PJ\-U4(,IEY%R$];
MQI)]=O.BJ@,'L^J%D 25J@6)/8*X/RXA**U&]*RYBG2$G@QZA >YV2>(\JCD
MPA/.[WK/.FJ]]L:X7/++?2IH)#N\ 6].F[\?7(;7YAOR\,<'&(9KET.M+< Z
M'I[.^L*&%_KAAS<%OT2?&^]-QE]72B(I1(#G"V-\_8,4-']5N?@O4$L#!!0
M   ( '.+>%JDH>Q#;0H  #$<   9    >&PO=V]R:W-H965T<R]S:&5E=#$W
M+GAM;*5967/;.!)^QZ] :3Q3=HJF19VV)W&5<\WF(9N4G:-FM_8!)B&)%9)0
M -*RYM?OUP!X2;*3W7G100"-/K[N_@ ^WRC]S:RD+/E#GA7FQ6!5ENO+LS,3
MKV0N3*C6LL#(0NE<E/BKEV=FK:5([*(\.QL-A[.S7*3%X.JY??917SU759FE
MA?RHN:GR7.CM2YFIS8M!-*@?W*3+54D/SJZ>K\52WLKR\_JCQK^S1DJ2YK(P
MJ2JXEHL7@^OH\N6$YML)7U*Y,9W?G"RY4^H;_7F7O!@,22&9R;@D"0)?]_*5
MS#(2!#6^>YF#9DM:V/U=2W]K;8<M=\+(5RK[FB;EZL7@?, 3N1!55MZHS3^D
MMV=*\F*5&?O)-V[N>#S@<65*E?O%T"!/"_<M'KP?.@O.AX\L&/D%(ZNWV\AJ
M^5J4XNJY5ANN:3:DT0]KJET-Y=*"@G);:HRF6%=>W98J_L;3(I8%N8>O,U&8
MYV<E1-.$L]B+>>G$C!X1$XWX>U64*\/?%(E,^@+.H%.CV*A6[.7H28FO91SR
M<13PT7 T>4+>N#%T;.6-_Q=#^;^O[TRI 8W_'++929P<EDCI<FG6(I8O!L@'
M(_6]'%S]]DLT&_[^A+Z31M_)4])_/C!/BXF&(3]L^N&G(?\J@3NM\33;\I7
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
M(,J3^43\RQ$R# 2!6(X2B+< BEZ+/QYFF[A8CB)0OA07BXBP^C<8?(A.'$>
MVAGT./)_+[XH?E K$9Z!1<FQ["KS=Z/D I9"D6 %Q#06T^N'W'KTF&6\G(L/
MMFHB:TBP0UB=AV(!VPQB1B_7&=8!"<MQA"XKSUMYSV&#+NB/(6$D0/,QN+*H
M/-E#U&C$''.1[G(-;U:Y;GICQ*GG5.2>U7!LI=9E3(=?#/&UX=6 29Z*_P"C
M0X\FORVG7ZJ<B(X 8!M3EB0AU$7>&9O!KA0:L.YL+FXR!"8$01G:*K<AOK:O
M[<[96T,M/(4<<G3>HZU#!>JHALACZG(@-#VW*YTIP =JUNF@RJA<0%VD#-"V
MH$*0F\]P&I1%+2MM)2\VF&$JF(&?S"9/+NFJ0AUBF-8E2G&%9APUB9:OB'%
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
MSLZD"Q\4PTUE=_P1;V6KRA9\N=4*KJ(%>+^VF%";&V+0?=5]\7]02P,$%
M  @ <XMX6KLE"5A-!   ] H  !D   !X;"]W;W)K<VAE971S+W-H965T,3DN
M>&ULK599;^,V$'[7KR"TQ2(!7%UV#GMM \D>V#YL$6S:+HJB#[0TMHA0I):D
MXJ2_OC.4K,A9.PC0OD@\YOCFXPPY\ZTV=[8$<.RADLHNPM*Y>A;'-B^AXC;2
M-2C<66M3<8=3LXEM;8 77JF2<98DYW'%A0J7<[]V8Y9SW3@I%-P89INJXN;Q
M&J3>+L(TW"U\%9O2T4*\G-=\ [?@?J]O#,[BWDHA*E!6:,4,K!?A53J[GI"\
M%_A#P-8.QHPB66E]1Y-?BD68$""0D#NRP/%W#^]!2C*$,+YW-L/>)2D.QSOK
MGWSL&,N*6WBOY3=1N'(17H:L@#5OI/NJMY^AB^>,[.5:6O]EVU9VG(0L;ZS3
M5:>,""JAVC]_Z'@8*%P>4\@ZA<SC;AUYE!^XX\NYT5MF2!JMT<"'ZK41G%!T
M*+?.X*Y /;?\R(T2:F-9#7A4)3<PCQW:I=TX[VQ<MS:R(S;2C'W1RI66?50%
M%/L&8@34H\IVJ*ZS%RU^@#QBXW3$LB2;O&!OW$<Y]O;&KXZ2_76ULLY@4OQ]
M*.#6W.2P.2J4F:UY#HL0*\&"N8=P^?9->IZ\>P'LI <[><GZ*X_D91MI%K$#
M01]8VG++<EW5C8."X7BM)1:J92=",5?JQG)5V!&#AQQJ-]#CE6Z4LZ>SX$_@
MICMZA@<'U0J%\/ ".CSZC(-?\78YD=K:4R84>H/@I^!D.KH\'P>G.)R,+B:7
MP2W9M;/@FEN1S]@W7U $ZAX,W@^$LL(Z]NXMPPO&.L2&X033T71Z0=^S-+@J
MBAG[(&1#U<Y@O<;R9WH]E&?PO1'ND?$M-X6EH MP8+"ZT-OJ$<,&YO"&LXUY
M9%B!^1VK +DH@K=O+K,T?1=<)(%W <5QG.AK-R1_]UR"<L?1I\DHR=(?F?*4
M#T/O""(&DV@Z]00F$?+7(>J7<?$B^*V$[GBYOP61B:*58_!C,N IRZ9 ?$3!
M$W<TJ[5#_()+% *3"PNTT[+3$CDBQ*A.#+?KNB:?N($A.R-R0M?N-$HXZRE"
MY_YI43D\L[8M07G7.V+QU;A#>FJT!#M8.V:\IK ,<Q>C<25O57NL>TH&)"<&
M!OY8T1@"[D,%(W01,>2.HAPDSA @(\*4=EW4:$ZH':0#= <'Z%Y!SAMT,6![
MJQN)28A!(]D_%UT>1^Q38U#*5-H \=QAM"U)G"GDA;*&*#!0:X,>1_C2YB6E
M-\I3+8[H_1*YIWV7!+WB\S3SX>5<YDW+56-W]%B.6=D61,2NAC"[ ^\("KIL
M*MC:Z.H0-7N4]$:Z>PGPDT83?/2D%%T]I5'Z-'=[MXV/T O1C>-3K@;_Y,O'
MYS"?TG'_1/\[X"0:[P'^!XP^B#1X'=)CU?&_0$V#5T$]1NJAIRX>="(5F(WO
MM^B!P;>B;4KZU;ZENVH[F2?QMA_\PLU&**QH6*-J$EV<A<RT/58[<;KV?<U*
M.^R2_+#$MA0,">#^6N.5U4W(0=_H+O\%4$L#!!0    ( '.+>%H<\$:_Y (
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
MXX#J?HCU"ZLV?G"LE,62\F*#<Q^T ^!YK93=+]P%PS^)Y7]02P,$%     @
M<XMX6L[*;1%J P  P <  !D   !X;"]W;W)K<VAE971S+W-H965T,C(N>&UL
MC55M;]LV$/ZN7T&H+UB!S++DMR"U#21IAPUHL:#M5@S#/M#2R2)*D2J/BN/^
M^MY1LN(TJ;$/MOAR]]SSW)''Y<ZZ+U@!>'%7:X.KN/*^N4@2S"NH)8YL X9V
M2NMJZ6GJM@DV#F01G&J=9./Q/*FE,O%Z&=9NW'II6Z^5@1LGL*UKZ?97H.UN
M%:?Q8>&#VE:>%Y+ULI%;^ C^K^;&T2P94 I5@T%EC7!0KN++].)JRO;!X&\%
M.SP:"U:RL?8+3_XH5O&8"8&&W#."I,\M7(/6#$0TOO:8\1"2'8_'!_3?@G;2
MLI$(UU9_5H6O5O%Y+ HH9:O]![O['7H],\;+K<;P+W:=;4K&>8O>UKTS,:B5
MZ;[RKL_#D</Y^"<.6>^0!=Y=H,#RC?1RO71V)QQ;$QH/@M3@3>24X:)\](YV
M%?GY]3L@2;A,/&'Q2I+W?E>=7_83OS03[ZWQ%8JWIH#B(4!") 8FV8')5782
M\0WD(S%)ST0VSJ8G\":#LDG FYQ4)OZ]W*!W5/S_GA+904R?AN +<8&-S&$5
MTXE'<+<0KU\^2^?CUR<(3@>"TU/H)U)_TN]I5NEL)'K%?S;@I%=F*S0O"+BC
M&TS?G43QG,Z0UGP=Z#X+7X'8@W0H@(LHJ 10;\"%,DA3B+.( C00;H[>=VL*
MZ3(VUGERD,?1<HL>A3*Y;@L06)')KQY<W=,(VR/QB6*65E,S8!]ENK[27?$@
MQQ (MDVC@>Z^EUH4"G-ML74PD$8O?=@6MA2YQ$J4!,C$M&1>W@K[, LH?E&&
M?&V+) )?743_!.%O'PF/^/SQWR0ZTL8QJ*=U84IG>U48/8_2LW&6==]T\H.^
MKM>I;Q1?%H5BG:3HH>I[RJWK4?\7N\^AXW 5;HGF%@B*N_!]X4/R67:H\:LH
M'67T6SQVY S;EK)):B%:D,F+:#J:1B^"&B+:.N7WG&M._K6M&VGV+Y^=9^GB
M-?Z8::&5W"A-6EDT%8T.29>0QS5X<. .RF9]+L-D'F631?3)\D%HS8$H<>]B
M-7+/QP#)(9NET3M .H%UT[*%(CLZ4#Z:SWJ 1_Q"I/1\+IZZSLE15ZW!;</;
M@2(0Z!KLL#H\3Y==5[XW[]ZV]])ME4$B4)+K>+28Q<)U[T4W\;8)/7IC/77\
M,*SHB07'!K1?6NL/$PXP/-KK[U!+ P04    " !SBWA:DP-/1#H#  !]!P
M&0   'AL+W=O<FMS:&5E=',O<VAE970R,RYX;6RE5<&.VS80O?,K"+4H;$"P
M1,J2+-<VL,XV;0HDV631YA#T0$MC2X@D*B05;_Z^0TIVO<BN@R(7<4B^>3-O
M2 U71ZD^Z1+ T(>F;O7:*XWIED&@\Q(:H6>R@Q9W]E(UPN!4'0+=*1"%<VKJ
M@(=A$C2B:KW-RJW=J<U*]J:N6KA35/=-(]37+=3RN/:8=UIX7QU*8Q>"S:H3
M![@'\U=WIW 6G%F*JH%65[*E"O9K[X8MMW.+=X"_*SCJ"YM:)3LI/]G)JV+M
MA38AJ"$WED'@\ 5>0%U;(DSC\\CIG4-:QTO[Q/[2:4<M.Z'AA:P_5(4IU]["
MHP7L15^;]_+X!XQZ8LN7RUJ[+ST.V#CV:-YK(YO1&3-HJG88Q<-8APN'1?B,
M Q\=N,M[".2RO!5&;%9*'JFR:&2SAI/JO#&YJK6'<F\4[E;H9S;O>J$,J/HK
M5EBC$DWEGN*1*V&+INFD;T5?5 :*Z2HP&-"Z!?E(OAW(^3/DC-/7LC6EIK^U
M!12/"0+,])PN/Z6[Y5<9;R&?T8CYE(=\?H4O.LN/'%_TX_+IQYN=-@JOT3]/
M56*(,W\ZCOVUEKH3.:P]_'<TJ"_@;7[YB27AKU=4S,\JYM?8?_00KY.S9$;_
M3YG>]HI^_@X>FXD[02+:PAH1%0JHL!LUM@F])&/$X>*0R:N6FE+V&O':I_"0
M0V<H\E%=.L]&]JW14_):J+S$"T+^[%N@44CN$0C-#I$XP=LSVHS8\$OR!MN>
M%C5H\C-AH9\L4FLP/\ZR8661I(/!T>=W);6FG9+[RI#83U! XC,6HLUY2N9^
MS)FCK!%')LP/HX1,R21BF1WBF-DA];,X1>,$=#IRV338I)R<)=D*7>5D$LZ0
M>VK',!K'9!A32WA;U;VQU?D.SA;XL53.?9Z&5ECF9XA%(_59YE8BGR?Q8ZD,
MX7'LRA$OR,+/6(+"HW006[68/-")U3(ED<^BC*1(88DG"1^5/D(]*SF<11P_
MX<)^,J>$72C%;?;M]E-_4'#1$AM0!]?X-<;$>S)TQ_/J^6VY&5KJ?_#A8<([
M=:CPTM:P1U>L*;9R-33[86)DYQKL3AILU\XL\7T$90&XOY?2G"8VP/G%W?P+
M4$L#!!0    ( '.+>%K\P*$6WP(  *8&   9    >&PO=V]R:W-H965T<R]S
M:&5E=#(T+GAM;)5534_C,!"]\RM& 7%"39,6BJ"M1 N[<$!4L!^'U1[<9))8
M.';6=EKZ[W?LI*&KA2*D*+'',V_>LSV3\5KI9U,@6G@IA323H+"VN@A#DQ18
M,M-3%4I:R90NF:6ISD-3:62I#RI%&/?[9V')N RF8V];Z.E8U59PB0L-IBY+
MIC<S%&H]":)@:WCD>6&=(9R.*Y;C$]KOU4+3+.Q04EZB-%Q)T)A-@JOH8C9T
M_M[A!\>UV1F#4[)4ZME-[M))T'>$4&!B'0*CSPKG*(0#(AI_6LR@2^D"=\=;
M]"]>.VE9,H-S)7[RU!:3X#R %#-6"_NHUK?8ZCEU>(D2QK]AW?@.R#FIC55E
M&TP,2BZ;+WMI]V$GX+S_3D#<!L2>=Y/(L[QFEDW'6JU!.V]"<P,OU4<3.2[=
MH3Q93:N<XNST$06SF$+%M-V U4P:YO?+C$-+^,XK3%JL68,5OX,5Q7"OI"T,
MW,@4TW\!0B+6L8NW[&;Q7L1K3'HPB$X@[L?#/7B#3NW XPT^K19^72T-&1+[
M^RWA#>SP;5A7.!>F8@E. JH,@WJ%P?3X,#KK7^XA/>Q(#_>A?_*(]F-%HQ[L
MV80'B: RL 7"7)45DYOCP_,X&ET:2+FF0E+:@-=G@!E8D%B>HK3 9 KS@F,&
M-R^8U*[2X"'+>(+: 7XC0(?]5:NZ@EME*FZ9X'9S G>2CIC6#]J$8)1(8<4T
M5[6!3*G4)R0DL)@44@F5;Z#2*JT3:\"J#\%=[=.C2].* 8$RMX6K9NX0G+?,
MX2B*1B2=TI*: Z?H*!Z>=1;@TE]#KY4&@Q-J2J9"WU;$QHOX;]=8DJA:$D_:
M/.0KMA0(F5;EAZ19Z>+HE$C@T>DK"4]K,-PQ6* JP7*)^F!;*>]1?.LRACN]
MHT2=^PYIP--NVDAG[9KP5=-[7MV;#G[/=,[I%@G,*+3?&YT&H)NNV$RLJGPG
M6BI+?<T/"_J1H'8.M$ZG;;<3EZ#[-4W_ E!+ P04    " !SBWA:K+U!"9("
M  #:!0  &0   'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6R-E$UOVS ,AN_[
M%80'[%3$CI-V79<$:-H-VZ% T>[C,.R@6'2L599<B8[;?S]*3KP,;8->;(DB
M'[^T_7+667?G*T2"AUH;/T\JHN8L37U182W\R#9H^*2TKA;$6[=.?>-0R%A4
MZS3/LI.T%LHDBUF,7;O%S+:DE<%K![ZM:^$>EZAM-T_&R2YPH]85A4"ZF#5B
MC;=(WYMKQ[MTH$A5H_'*&G!8SI/S\=ER&O)CP@^%G=];0^AD9>U=V'R5\R0+
M@E!C08$@^+;!"]0Z@%C&_9:9#(\,A?OK'?US[)U[60F/%U;_5)*J>7*:@,12
MM)IN;/<%M_T<!UYAM8]7Z/K<_$,"1>O)UMMB5E KT]_%P_8][!6<9B\4Y-N"
M/.KN'Q157@H2BYFS';B0S;2PB*W&:A:G3/@HM^3X5'$=+6[;E<?[%@T!;OCJ
M9RDQ-ARFQ1:Q[!'Y"XAQ#E?64.7ADY$H_P>DK&<0E>]$+?.#Q$LL1C 9'T&>
MY=,#O,G0Y"3R)J]M$GZ=KSPY_B5^/]=O3YL^3PLV.?.-*'">L \\N@TFBW=O
MQR?9QP-:IX/6Z2'ZZS[(8<3X= 1/6_Y6(5S8NA'F$2KA.2QT*P@E"*UW2=8!
MOQ;C1?2,!ZH$@2V*UCE.;!L@RS$$R85Q47"6U4I&4*F,,(42&CQQH([(#AV"
MV BEQ4IC "CO6QS!DLT4F.Q-JI1GBV_8<T=O:$^H5!*,)5"26:I\A!#T3WJ+
M,CO;:LFM;9!1]ZT*BH7\PQX*0D)K4OE"6]^R(&5>)W_TW"=-]_Q6HUO'J>(9
MUAKJK3=$A\%UWOOU7WH_]:Z$6RM^T1I++LU&[X\3</TDZ3=DF^C>E26>!7%9
M\?!%%Q+XO+26=IOP@&&<+_X"4$L#!!0    ( '.+>%KA%6(A0P(  ) &   9
M    >&PO=V]R:W-H965T<R]S:&5E=#(V+GAM;)V576^;,!2&_XKE2;M:RT>^
MI@R0DG;3(JU3E';;Q;0+!PY@U=C,-J7]][,-8=F44"DWX(_SOG[.03Y$K9"/
MJ@30Z+EB7,6XU+I>>IY*2ZB(NA8U<+.3"UD1;::R\%0M@61.5#$O]/VY5Q'*
M<1*YM:U,(M%H1CEL)5)-51'YL@8FVA@'^+"PHT6I[8*71#4IX![TMWHKS<P;
M7#): 5=4<"0AC_$J6*X7-MX%?*?0JJ,QLIGLA7BTDTT68]\" 8-46P=B7D]P
M XQ9(X/QN_?$PY%6>#P^N']RN9M<]D3!C6 _:*;+&+_'*(.<-$SO1/L9^GQF
MUB\53+DG:KO8:8A1VB@MJEYL""K*NS=Y[NMP)# ^IP5A+P@==W>0H[PEFB21
M%"V2-MJXV8%+U:D-'.7VH]QK:7:IT>ED8\J;@40/DF24%V@E)>$%F+)K%7G:
MG&#CO+1W6W=NX1FW";H37)<*?>099/_J/4,VX(4'O'4X:G@+Z36:!.]0Z(?3
M$;_)D.[$^4TN2!?]_&*BT49#I7Z=RKVSGIZVMK=GJ6J20HS-]5 @GP G;]\$
M<__#"/AT )^.N2>[A@$*_/WL*CB&1JM,U/K_4G>XXX8Y80I&P&8#V&S4YZO@
M5Q? C9N^!C<?X.875>T!I+E+Y S;N.=K;(N!;7%QX<;YQGW/\GE'7:("6;A>
MJ% J&JZ[AC&L#NUVU769O^%=K[XCLJ!<(0:YD?K7"_,Y9=?_NHD6M>LY>Z%-
M!W/#TOPR0-H LY\+H0\3>\#P$TK^ %!+ P04    " !SBWA:JW )2L8*  ";
M,@  &0   'AL+W=O<FMS:&5E=',O<VAE970R-RYX;6SM6UMO&[D5?M>O(+1
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
M>U-'WYM'1!^7:R*4:V><N_O@HI_2/7#QMF;X[4,9;G-Y43>@I.*RT==E.=F
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
M5+VCC#LU.[%30CJ[7<X9 -GA8U)L%W8#"'!*WD'ES C?2:E$Q.\;!V7%![H
MK-RW4+?"%*?R#N@.3-"U(_X&_C+-4HXXO+5#G%A1_>V2O+4$L(84LTF1'6I-
M?K'%IJ:@3J'=J$?,KCA"0DB232"JY8PRX<X8!PNR<8*F"+;C$" R-3N.J+!=
M6<WOAE,L^"KGP<BV2T&&I]7#SHEL/_QD*XY )6+]FIECKTS^&:C)\<URU>[H
M?@F[9*_J),Z.C9S!;/*<*SFG9G5*NQ,M9AC)7T^?,[ON4E8OE6>"I&!\_AH'
MP 81)Z]#XFO6@21=RLBW!Z3/5Q1M6";.W9^#;)05C;C+]]G:HVN0#:P%U!!\
MB#\["I$#%22:C)$B Z.PPEC)ALL>SGG=UHH>G ,._D[>H'*A>KLEZ,LG16+Q
MH5I8IGI4ZN"Z3YX;!"K7!![-G=[?O6?0^7<*?BT>R(0553KX@,E5T(+9 4HW
M%HC!5EW+4*EABT.><@= PPAONZ,Z"F 7MC-B,BZ=BX*: AI55K @\0YK69JR
ME,!+MZGE V3)89@2/"<7#ZO%-[0(JWM3YZD8C,]&C",INVS@(N^\M<TX@#OB
M;<36P^"*[)0 E&E)(L@Z*UHW!D2CB[NL-(4@K&!8T6/UP(&PF5E'E^RQH/*E
M[1@D;P@B@OD&]] @.G@LJ:HPB_!%4II!S@%X1A<("/(^5'RUY+)? )Q203SZ
MBRZ3S+84"BA-WQ.N=C<0+A4[@>V2D[4X-BFY4OSW[/990;1O!:5>L6\V!6>]
M#5?WVEF(R^L>@KOL@&'/[5#Q:-JJC4X'H^$/QJ1,EMA\#STLUAF7)0X&^K]$
M4%V3$4% ;7#']<U1\/?!1%+9>&&BM2=J./QT:+H4@]W'!BF_21AFI\P PU]\
MVWB,0.H>U]IZB1 %M0-X?4 FNMZPU<?BJA/$D%;"&SS17A83]V^HE?$4A62:
ME$"P@VZQ3&P@^E&]4*>#9SIKSG0V> 0?-9!?'7SMH=+H'Z<BE2EXR\+&TG'8
M(7%GG]HZM(['[N;+,+PF+0F>RZ5X9/Y5+G$7SF%#X5O"&2V(G+RDLVA7@*B"
MXW,QF+*X*;9L\8T]G!;.Z=PAG#&HZS (QU%3%<FZR^'3*^FMC)2KX@G2@?77
M92$ASE#NVJ0_MN/P6R4$3I+$KT)?^AD0C0=()&>^[&*1O1U%PB+21#ATKI1D
MU<8%+8=%0A+&"NR!R%8CD4J5Z5S*<2W//FO8@3"Y=WFJ$3\YQ78G6\1<XW#!
MNG\[8_6O_FUF=FAK_K!6(_^EDV8HO/V[3M=D/KB \UD<U)*6<:6=3LW)%6-@
M?KJTY-0I@=_6"(;9G7Q,:BY M%T[:,HW[%+&ZAT!8V"C?QLN<3D4X B,G&;S
M/BFIY-(EQVO2"#:..*<B "ZHMUPX%=0.();'#O_LXK+:4Z" 5FS@53Q.'.U,
M)LH$%7/9>Z]QM@ /9RUVX]"W.SS*XTOQ5[QYD_MOR%MR^ LV*'FSM#5<%80V
MX= (,>+K$-Q/)73;PI:@M*KS%00+9\<Y4VX-;)KB!6+KJKJG$.BK'QXS)\ J
M5, KTF@=;TD'MW'Y6>/TWWYX_^;MSY\^WOPX$M/1A92DW2V26%!E3DK/!*.@
M*ULCM7"J'^Z,LV.AR=3AVN.U2T,(3=$YTK:VQ!&G-KQ1MVF;0T>V<4*5W7&+
M)5%,7^"F# L06G.]8 FGT=YQ2+^\&N%60$A"K,1!U):W:$V,8%>FW9L[BP?:
M='6X5A*<2J]+7X=)=9YYL&L?;*6WP<IP5#G^%(E("TI_0,FL9 5]J[M=/.9B
M7RFI?A831/6PBO4GC^*$$C56I.5#5_'Z--:O-ZRS8LRFYJ3NGG/%BDR-PK*S
MOZ]94KRJG-3D-N[-TS5T'+FN6@C$^0%VN<X1"#$*(H^9PP';:&];K@OR%%,D
MBSEL?H&[L?K0>Y'D:1:O+?<S)1,B=<]6W<6D<.<BVQ*0>44I3<Q(UC' 0AD]
MNM-MSL5$1G$Q)401&%QJ[D3S?G4Z8LC7E4'WBI#Q!NJ$ LE=Y!!V(5Z^=AKH
M,6;<J1"'I-HE-UX[J)\!C\R]+-&!U"4.5-!V6C-2KW_YY\W_J"0W=7HJX*>Q
M/2H))2)7B@+)IN!2C*UW.U-*MHYUHA7\K(<V<IG)S?JAB1O.0Y$>%7Q@K=++
M<=,/65$.!%]PREE1^WIW6"D94=,U8\MS*N%Z0FW_U3+)DQ!]]C+HH!ZQ_;IZ
M' I2H:C09CE O>Z*. _.CL+*(Y<HPYQW=>4 "P57N^\<VA2[9A1UO0-EH.T#
ME2-NCI7 GFW)T15D-D!1[>,/582 *5Q]7NH.R#Z2,MM)KY;S<6JU8!NJBC_+
M/(8TZ$*KJ>O5^8,VD3X_U157BY<H= NY7M]5ZTP_T0T^(A^\J9#_.PYGSW7_
MYMK>TC#:&F[24,Y6',8=7 $)7K*I#7:Q5O6P(_/,J?3B%-?A8TH3TSBG)0BM
MB ,"MWLH&8K4%"+[Q4>M#ZA/0E"$"A'46.[G>MP9!*!E[0"VLFUG)='6-GU^
MTLH#6Y",AEQW;ZM]K-Z[5"ZVKNO+AXU-R/T1E4,H8Q!9^G=<-/$5\<%]TKKD
M#0ED,/<A@SS$,B=[74$?NE0V1_DKW.X!W[:'N,/9Q^F_:S9H@8:MI#_B.0=L
M2:S'FY3KE8;Z%)"H%=V<SJC96&WVLT/7=7+C#E0+S=C>K7.G#[XDS34-:J:3
M["3/=<D=TC7([G<G2FE$.9.B]A:/2BQEDJGQ0X0O'S,W5M]G0+X(+>O0X/9N
MOZ\WF#974^^XR88HRCBA4:%^Y%#!$E@3%U#2MJ0J)I+*C*2V,?>MG'+D,M 1
M>7>N;$,=@4*E&A8RKRBD0WXV:,5>F;WC:B7" 1^A-NF:]&-UR\)FJH3SG8^O
MXB^N2.U*DZF$);>,'7-WLJ<YR>6>_0[EKU Y7'=+'1 ;O2\<%B$<'7TR4+WH
M77_,C[Z)IO/1Y?2*7HS.%C/Z_V(TG4RC#[_<JKB&#V-"T=GH[&(:^I7R[DU(
ME92D2M%T-CJ?S:++T6)V$<TFH[/Y(OI$7ND&:G#K?>X/)3*A:#9:+,ZBBZLI
MJ)U?SH719AR'.JEGH_GB'"^N1HLK8G&.=1?S(=&<_:VB.1]-ST4TT_F5B.9L
MLM@7S<5H,3F/IM-+O+K"[A^+9;: C,]).O/+RV@.<E>S@W*YQ!ZGT6*VB!:C
MV>2J1R[GB]'D8B)G=WXYI1[P;'1Q-J5^CUA<F!4(G[B2J*L8<-FX6')JW)ZN
M DZO2UO',MC!Z3J\[RE#KO)QC0Z6C(QN%+ZBB9%E)]N2&<:]\ID#U5EQ9PCF
MCM5-T<>-#_[<^ <)7\SVJTG+L@,0.$GCLIJ_".:E==HIB/EU'P?[7WM$(AF*
MBW:I-"3];(7OD(;W32_*5YPB<M)-<^_0C%A/<^\7KK#=,$G_M?$5JN%)LA42
MRZJ17;*G!&G-U4V8RT1 N8MI)>M%S-,:TC9VV8:[?]RH4[O)T-*I<,+-A) ;
M3-$.8+ES :G>2SE7I_@L(W6-U$H:^/NQM]/II!^U><J^*BA?#G-=OH9SS\N6
M)@\ID*5W@B%6!\%0YBH*;'+W,@HFHRB2'E8RNAMP+RM(-\%O"FYAT/+K>?4X
M^GY/KD+6";"%T1HQ=;ND>PJ\_UV[P,@3??L):8-&!C).]=6,LUU<ZZ1E#=CA
MJ3NN?J114[QK)20V++>?0'7RXD'9X^6QD5K/2;NR\+A@"_0B5D0?<@*L^V,U
M]YK:.8Q;"A+]9CJ>JBT\CCR2$::5N S99VG]W9^SL?I9M\;!CENWG/0X_JH-
MKJZCIXT^];G&,&1&H6ARP0'I_,"5+2V+SF8(A9.H[0%.O=E%Q],+F7TZ/\=_
M^_K=+'F,*#JYY"M'D\NKWFO;BQ[/YA=T-874D^BK L-F0/B,"?/+Z>4B.H';
M]MWA0[[@ZU<T3J<_:>.Q2"@=5\I%J]W ,9?(9?15;*GC7EQQ->A0JUUUL \J
M8XH.5;<Z1OV<^5S2A>.O;93:C=]<C,^\CG=S3,DIK)!RYM%81T%W3B)O'32.
MP/,I7UU3PBT#?'BK)MUHY1,]<OAF,IX%4]RG,9M[0*7.+H:ZILW#,=/!QU9>
M(2[1!$(SV=L:G>UMG_YY<M>J[TD 3C::DE)021+/=/(MZ1C7.D@5&'_V3%#*
M<'O:=8/VD!]DQTNN!/Z0G+*-Y$#LG@=J7,Z/7"G]+M[NGJO?#'O@'QA/C]3[
M(AD#GD??1F?XUT'U[AKUJ0DSQPY&O/_ADX,-)]$%[@/$_M;E9PSJGBZ-YJ&!
M/[U]]1>WKZ93]:VZ4-C^#Y]X.R2/(>ULGGJ:#C^I]+98XQ-=\EJIIOZF"[]2
M$T]AI+GAKEZOLOYMU*_A+*Q,+LF8A;-*_702@F@),-74%0F@P%_*/:UF1M=/
M;M$S:GD#50C51"N-Q,X]LT".5S!=4_0:48]./+4T2ZEJ1>WXDLI!K?:;=4@W
MB7=9Y4:DG,]Y/,3RU5$^SVNW<=-,DE+\6.N"9_<!,OP3 $'=J<:9X3K?YA9T
MQ&/_)/!08R0U%VS:EHIJ2X5EW6*B(YQ#(S>96S%.-J'319*C"9E3GL]O'V=F
M;:W;S\.E)JGI&]&.V'7R:!4(@#)0B,KIB,2?3@DK/%0AI^*/-6H/#"1N#,\]
M)>1KSSH,R^?92N_US@:':YK'[:;#3\O=I%BLXE'(7D-[\MV#8]#-8W;3X8?C
MX'9HU(UK5[W\//WV08::Q^FFP\_3O8-3)ML7C)<\"&3)#SZ@^1?(#3+<S-A/
MA^?D;^%I? G0(]Y>1O\X&1XRI[X0:>'K/$X^G]XF&\,JR_G1*6$XGCB@H@V[
M@#A/:#1%]XRNV=82,?Q6:L5Z/E.5&#:X;>5<\%Q6-<]Z27O"FU"W?LQ5!3\)
MLI-A)^Y]5B;Y[%#FG2&1DT,9,8(YY49CF$:5.=<THP%8^/R'3.?P+JX '! T
M$6W-*PM]>?;"#6"ZXOY/;OQ<W$![:_[9I^ 8>10"'Y!GRJE)@I2*.[X2EH*G
M;& 8P@XNDO<NM' 1?Z4S*CX_'E-V=7@9 AI2N>91BNGPTQ"4Z61B><?T8,P)
M06<YWE[-^YNH=1]";YZTF T_,$%EL:*B@@7Y^;3SO'AI"E.[X>U>J_F[:*MK
M]4NA?H:G9U@VNY0T6[*E=S>WKSV%F]M?^9O3"2ZYU:(E'[G\0E2//YE=EJC9
M8G(2@6# >=/YUPE>,<HC.7_B5H&C=3F?G%"/K&$NI'$]=.:GD[- ATO@Q"$7
M\6?/&SXI(ROUAM09RBR7NXO>.CRTUZK!VR3G1]; V6V]K&2CL\DI^ .B?=38
MV>=!.<+6QV28<ACU9G]2[W@^WQOARI@*F:ZT_/S2H-WN"E&TEA_6X+&>)36W
M+1P/#><IREO7_(12VR_XJ6>GTS;PYX$@C^EG^- ](B,(SC_I&A&@NHL+GC5H
MY@RMN\,/>#(PJ$O@3.LFZ^5Q*3@XO=WEYD'KCJ\@4(L323+W3@K*>Z/(;1S3
M)\66#DBCB=M4=,+DLU<0(V"2Y"S-XVP"OQI-/6=-O1BKMS$D%OE'D'C:C'Q=
MQ<,]-_YC]J/XCM;FB<;6PZBI?RB\=80CM:Q;LX\TJIQ4OO[5X-WFH<*=L5D8
MD>5G:<G7[]RHI^4)GJ8]U^M!G[5^W0/X=\V_86+EZ5[YH8_P:?B=E!OY=9#F
M<OF1E9^0-]"C/KE>X=;)^!* K)3?+9$WL O^K9"EJ0"V^>5&QU =N@#?DU;[
M-[1 ^/685_\%4$L#!!0    ( '.+>%KA;0A,UP4  *L.   9    >&PO=V]R
M:W-H965T<R]S:&5E=#(Y+GAM;*U76V_;-A1^YZ\@W*5P #7677(N!IRDS0*T
M6Y"D*X9A#[1$VT0D4B6I7/;K=PYE*V[KN-NZ!UL4=?B=<[YS(7G\H/2=67)N
MZ6-=27,R6%K;'(Y&IECRFID#U7 )7^9*U\S"JUZ,3*,Y*]VBNAJ%OI^.:B;D
M8'+LYJ[TY%BUMA*27VEJVKIF^NF45^KA9! ,UA/78K&T.#&:'#=LP6^X_=A<
M:7@;]2BEJ+DT0DFJ^?QD, T.3S.4=P*_"?Y@-L84/9DI=8<OE^7)P$>#>,4+
MBP@,'O?\C%<5 H$9GU>8@UXE+MP<K]'?.=_!EQDS_$Q5GT1IER>#?$!+/F=M
M9:_5P\]\Y4^">(6JC/NG#YUL$@]HT1JKZM5BL* 6LGNRQQ4/&PMR_X4%X6I!
MZ.SN%#DKSYEEDV.M'JA&:4##@7/5K0;CA,2@W%@-7P6LLY.;+AA4S:D1"RGF
MHF#2 EF%:J45<D$;58E"<$.'MVQ6<;-_/+*@&)>/BI62TTY)^(*2(*0?E+1+
M0]_*DI=? HS XM[L<&WV:;@3\9P7!S0*/!KZ8;P#+^IIB!Q>].,T_#&=&:LA
MF_[<1D2G)MZN!BOLT#2LX"<#*"'#]3T?3%Z_"E+_:(<3<>]$O M],JV@Q)@L
M.(5BI6\?&\A\7M(SS4MAZ7ME##?;;-Z)NMWFVR4J07W(C<7$6-6U^ LXLO#9
MU9NP3T3S0FD(.Q6R^_"%F7QM9M&963DSH=XKAK-6K8. <P47]ZCKD/S.F5ZE
M$X5DX/6,:TP(,KQ$+:HU3)9FGV!^X%]$3EF%2CTZXPLA)=H-T6ZX%JHD/Y$L
MS>$_2@(R+<$.Z!B&%DNF%YT1A3)@ 6 Z@R682%Z_RL,@."*IGY)S7K:NS1@R
M#,<QV2?#(!_#H]?*8>FFOCB+.ZUT1^23/O+)SLB?"\,6"\T7S+4ZT'/-[[EL
M^;9P[X3:'NYO\76'3[<E0ODL#9%4K>ZE9T_0N_0=[#7VJ0%2F*$/,,LK 0(4
MHC_CQD)3;40!;"^!!$P8R6RK4;K&//"H%34JPV"TP*VVL/=85[N@BZQUX>>"
MF26=@W$0.@U3\WF7:V ')*54M2CH'!)5:7- ;QATMPX5[.=OL-E#[-DC[U;S
MQZ)J,=_F6M5KE\R!2\4MF>A:T]?I^%$*U']CD1IR*2W7TG'**G*K+/R_4ZJD
M2+N  K&\6$I5J<43Y$H0>UDPQH$7Y2$^4R_P W+UZPUE+6P4#HA$7I0&?7)V
M;V?,"*F<;PN&Y)$@])(P))F7ARG4AQ?%.;G53)II8>E-I][0"ZW:AH1>GD<D
M'0> ED#:.D.IA"@:I S+)O+B/('!V,O':&(,>O-X%S71_TI-X@5)1TT0CSMJ
M(C__FIK4R_V$!$$&HS%X_RTM80X<)\A.G&4D!KAQ^"(O&?@8D#S,2>Z%_G@+
M+TGN^:G?Q2[) BSXT$NC8%?-IWW-ISMK_A?0<P:[*FY%=/A>L)FHH&_!!DVG
MT$+MUE;_?<BBAZPV(9F#Q*]&0(E"K=G-RC\D_ZP)?Y0 64&8GWNY\>"<HS67
M%GF"7HIL)2](2B7?K*6C$.+DDS-W2 +%T*[>-.P)3HP6NG"0=ETX2>!QSN<<
M%I7KJGU6.800^YF3]/QLO%5V4^DPC%.4QGCOD^\2!LX <.2 W3#(<K*_(_I9
M'_UL9Z@@\@5'Q>N&O-KEKX6YVQ;XW6C3;[?8KLL5*W+QB]L.NL-0X.]1V+MK
M!6T14\$E_I9]VG/54+;:;0Z0,$]NV^;;FZ4K1$P3V!2P6QO2Y9?Y*KN>T^D]
MGKGI:U8W1_23 E1-+UPA>_12%@?0%\@>B>#W13M9R=#;OH70(?;+T#^ZO+AU
MH^!HGZ2P#FI[;[4QX"'@7[#1MX'_[C[]0?=I$- ]FE)P_^+6N8-\;$N^T<8%
M OQ;N&L25CO$L[M+]+/]36S:74">Q;MKW <X,@DX.U5\#DO]@PR.&[J[&G4O
M5C7N.C)3%LATPR7<)KE& ?@^5\JN7U!!?S^=_ U02P,$%     @ <XMX6C8%
MC%5M @  2P4  !D   !X;"]W;W)K<VAE971S+W-H965T,S N>&ULC51-;]LP
M#+W[5PC:,+1 4'\V2;/$0-.N6 \%BK;;#L,.BLW$0O7A27+=_?M1=N)F0!KL
M8HD4W^,C+6K>:O-L*P!'7J50=D$KY^I9&-JB LGLF:Y!X<E:&\D<FF83VMH
M*SN0%&$21>-0,JYH/N]\]R:?Z\8)KN#>$-M(R<R?)0C=+FA,=XX'OJF<=X3Y
MO&8;> 3WK;XW:(4#2\DE*,NU(@;6"WH9SY:9C^\"OG-H[=Z>^$I66C][X[9<
MT,@+ @&%\PP,EQ>X B$\$<KXO>6D0TH/W-_OV&^ZVK&6%;-PI<4/7KIJ0:>4
ME+!FC7 /NOT*VWK./5^AA>V^I.UCDY22HK%.RRT8%4BN^I6];ONP!YA&[P"2
M+2#I=/>).I77S+%\;G1+C(]&-K_I2NW0*(XK_U,>G<%3CCB7WZH74$X;#I:<
M/+&5 'LZ#QTR^_.PV+(L>Y;D'98X(7=:N<J2+ZJ$\E^"$"4-NI*=KF5RE/$:
MBC.2QB.21$EVA"\=ZDP[OO0_ZOQYN;+.X'WX=:C2GB<[S.-G9&9K5L""XA!8
M,"] \T\?XG'T^8C*;%"9'6/?5WE(VE'P86E/%9!"RUHK)+9$KPG?ZP0S, NP
MU2!78'R[@Y-;15RE&\M4:4\#WWW_28,'UN*]<V X$PA4):D;4U0X$.5; E(S
MXVSP,9B.LCCMUS0);KCB>$5+LM&ZM,%D-,FFP<4H3288$H]'\3CV&_2?7Y!#
M;0SW+K@$L^G&V&+>1KG^K@_>X:6X[ ?D+;Q_9NZ8V7!EB8 U0J.SR3DEIA_=
MWG"Z[L9EI1T.7[>M\+4#XP/P?*VUVQD^P?!^YG\!4$L#!!0    ( '.+>%HV
MO<A,\ (  #(&   9    >&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM;(U5WV_3
M,!!^SU]A!80V*2R)F[9I:2MU@XE)#$UCP /BP4TNC;7$SFQGW?CK.3MI5T2I
M>/&O?/?==V??9;:1ZEZ7 (8\U970<[\TIIF&H<Y*J)D^DPT(_%)(53.#6[4.
M=:. Y<ZHKD(:1:.P9ESXBYD[NU&+F6Q-Q07<**+;NF;J^1PJN9G[L;\]N.7K
MTMB#<#%KV!J^@/G:W"C<A3N6G-<@-)>"*"CF_C*>GB<6[P#?.&STWIK82%92
MWMO-53[W(RL(*LB,96 X/<(%5)4E0AD//:>_<VD-]]=;]DL7.\:R8AHN9/6=
MYZ:<^ZE/<BA86YE;N?D(?3Q#RY?)2KN1;#HLG?@D:[61=6^,"FHNNID]]7G8
M,TBC?QC0WH ZW9TCI_(],VPQ4W)#E$4CFUVX4)TUBN/"7LH7H_ K1SNSN.1/
MD!.F-1@=$(&OX.2.K2K0I[/0(+]%A5G/==YQT7]PQ91<2V%*33Z('/(_"4(4
MME-'M^K.Z5'&]Y"=D4$<$!K1Y C?8!?MP/$-_CO:'\N5-@K?QL]#\79LR6$V
M6R]3W; ,YCX6A ;U"/[BS:MX%+T[HC79:4V.L?=:E[W6SV ."3Q*<5C@70DD
MDW4C!0BCB2Q(\5=6F(*IA\F'>@7*7H!W<B6(*66KF<CUJ6?OPPX#[TY*=+L.
M\%%F)?I7SP0A!!Y:WF#Q&N^U-PY2FKIY.*+>9:L$-ZT"AY-%P3/8@],@&J?]
M>($R6X,*M"S,AO4F+]@T2&**8SR)O$^ M5G**B>\;I1\!(O02)1.AMLQ#F@\
M0-G!F [10.LI66996[<5,YB!'#!+&6==NT!/K);*\%_NP#N))T$R2KU37*7!
M*!GA*@[&R=")G:!8@2^I[9H-%V]11(8NO/' &R04PX^#-+9IH$%"8W+HA81[
M=5R#6KMNI?&V6F&ZDMZ=[AKBLNL#+_"NFUXSM>9"DPH*-(W.QD.?J*Y#=1LC
M&]<55M)@CW'+$ILZ* O [X649KNQ#G:_B<5O4$L#!!0    ( '.+>%H% IY2
MP@(  #D&   9    >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;)5536_;, R]
M^U<(WC T0%%_)5F7)0:2=A\Y% C:;CL,.R@V;0N5)4^2FW:_?I2<>&F1!NO%
MHBB^IT=)I*<;J>YT!6#(0\V%GOF5,<TD"'1604WUF6Q X$HA54T-3E49Z$8!
MS1VHYD$<AN.@IDSXZ=3Y5BJ=RM9P)F"EB&[KFJK'!7"YF?F1OW-<L[(RUA&D
MTX:6< /F6[-2. MZEIS5(#23@B@H9OX\FBR&-MX%?&>PT7LVL9FLI;RSDV4^
M\T,K"#ADQC)0'.[A CBW1"CC]Y;3[[>TP'U[Q_[9Y8ZYK*F&"\E_L-Q4,__<
M)SD4M.7F6FZ^PC:?D>7+)-?N2S9=;#+T2=9J(^LM&!743'0C?=B>PQ[@/'P!
M$&\!L=/=;>147E)#TZF2&Z)L-+)9PZ7JT"B."7LI-T;A*D.<29?"4%&R-0="
MM0:C3XG IW!R2]&E!]/ X"8V-,BVA(N.,'Z!,(K)E12FTN23R"%_2A"@NEYB
MO).XB(\R7D)V1I+HE,1A/#S"E_0I)XXO>5W*/^=K;12^DE^'DNXHAX<I;>5,
M=$,SF/E8&AK4/?CINS?1./QX1/"P%SP\QIXN<Q"&%<Q>"=E3/W?J#ZE]!1][
M?AJ$*L!RRZ3"Z\-E\L)YX8JIT)5ELFZH>&2B)!=2:,E93@U"%Y13D0&YL8\3
M:47NJ&VX8AH#9.$8"LFQ-2!\XN%50[T&9:_;L]=M/XEWLK1[R58CAQYX7Y34
MFLQKV0KCS;.LK5ON=D27,NP/M?7^GU&K5F45M6H,9)607):/WELO.AU]B' \
MZ8S!,U>8H&N%;,)H+QJA;X2.WKB5AG('&8?C#F*-P5/7*#KW!H>>1[!7SC6H
MTC4MC0>'F725W7O[OCCOVL&_\*ZI7E%5,J$)AP*AX=G[D4]4UZBZB9&-:PYK
M:;#5.+/"W@[*!N!Z(:793>P&_=\B_0M02P,$%     @ <XMX6D_YJ("% @
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
M6EM.=SCNE1W$1VMQ@/IF SGQ3%? H:STJS1Q$C>8Q@8-DQ.;Q:_XSW!JH=0
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
M4-%$L"Q+ZEP77@.-%&V(&\GQ)KW)9&37D\@[3],I7/*BMOT-F&74\""S?7O
MQYJ;9V!;IE)M1:=H4%$_4;35,\E&,#33=*V>@7HN>8 2*1>I=W@PCJ/HS!N%
MG@N!Z=L\*=9N:^-M6('"O,T^"GMA'/V=*9?R?>EM@FP&P_YDXA(8]BE_+:/N
MFBY'KWUWP=Y\*%&MW12T'P'5LQD5W6TW:,^;^?+'O)G2UTRMN=!08$:N87]T
MXH-J)E]S,+)RTV8E#<TNM\WI9X'*&M#[3$JS.]@ W>]G\1M02P,$%     @
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
MEOBA -H)X/E2*;O=. /MI\?\+U!+ P04    " !SBWA:T_,OC$0#  !*!P
M&0   'AL+W=O<FMS:&5E=',O<VAE970T,"YX;6RM5=^/HS80?O=?8=&J2B2T
M8!,@I$FDS6U_7*7K;7?[XZ'J@P.3@ XP9YO+WG_?L2%<5MW-O?0%C^UOOIEO
M; _KDU0?= E@Z%-3MWKCE<9TJR#0>0F-T#>R@Q9W#E(UPN!4'0/=*1"%<VKJ
M@(=A$C2B:KWMVJW=J^U:]J:N6KA75/=-(]3G'=3RM/&8=UYXJ(ZEL0O!=MV)
M(SR"^:.[5S@+)I:B:J#5E6RI@L/&NV6KW<+B'>#/"D[ZPJ96R5[*#W;RMMAX
MH4T(:LB-91 X?((W4->6"-/X.')Z4TCK>&F?V7]TVE'+7FAX(^N_JL*4&V_I
MT0(.HJ_-@SS]#*.>V/+ELM;N2T\#-HX]FO?:R&9TQ@R:JAU&\336X<)A&;[B
MP$<'[O(> KDL[X01V[62)ZHL&MFLX:0Z;TRN:NVA/!J%NQ7ZF>UOO5 &5/T9
M*ZQ1B:;R0/'(E;!%TW36MZ(O*@/%G,Y^%_L:]'P=&(QL_8-\C+(;HO!7HC!.
MW\G6E)K^T!90/"<(,.4I;W[.>\>O,MY!?D,CYE,>\L45OFBJ0^3XHO^A#G_?
M[K51>)_^>:D20YS%RW'L&UOI3N2P\? 1:5"?P-M^]PU+PN^OJ%A,*A;7V"]4
M/'Q1\7Y2\5*ZUPG?]XI^_$IIL#.X4R"B+:P14:& "KM1XYO7*S*F-1P^F;UM
MJ2EEKQ&O?0I/.72&(A_5I?-L9-\:/2?OA,I+/&3R2]\"C4+RB$!H]HC$"=Z
MT6;$AE^17[&':8$WE'Q+6.@GR]0:S(^S;%A9)NE@</3Y24FM::?DH3(D]A,4
MD/B,A6ASGI*%'W/F*&O$D1GSPR@A<S*+6&:'.&9V2/TL3M$X YV.7#8-=APG
M9T5V0E<YF84WR#VW8QB-8S*,J26\J^K>V.I\!6<+_%PJYSY/0RLL\S/$HI'Z
M+',KD<^3^+E4AO X=N6(EV3I9RQ!X5$ZB*U:3![HS&J9D\AG4492I+#$LX2/
M2I^A7I4<WD0</^'2?C*GA%THQ6WVW^V77D%PT=\:4$?7Q37&Q'LRM+II=?I1
MW []\0M\^,O@G3I6>&EK.* KUA3[LAHZ]S QLG/=<B\-]EYGEOBS V4!N'^0
MTIPG-L#T^]S^"U!+ P04    " !SBWA:["3 ,EH"  !P!0  &0   'AL+W=O
M<FMS:&5E=',O<VAE970T,2YX;6R5E%UOTS 4AO^*%20$$BP?;0<:::1U!<'%
MT+0*N$!<N,E)8LV)@WW2#&D_GF,[#06Z"FX2?YSSGL<G>9T.2M^9&@#9?2-;
MLPQJQ.XB#$U>0\/-F>J@I9U2Z88C3745FDX#+UQ2(\,DBL[#AHLVR%*W=J.S
M5/4H10LWFIF^:;C^L0*IAF40!_N%6U'5:!?"+.UX!1O 3]V-IEDXJ12B@=8(
MU3(-Y3*XC"]6"QOO CX+&,S!F-F3;)6ZLY,/Q3*(+!!(R-$J<'KMX JDM$*$
M\7W4#*:2-O%PO%=_Y\Y.9]ER U=*?A$%ULO@=< **'DO\58-[V$\CP/,E33N
MR88Q-@I8WAM4S9A,!(UH_9O?CWTX2)C%CR0D8T+BN'TA1[GFR+-4JX%I&TUJ
M=N".ZK()3K3VHVQ0TZZ@/,S68'(M.M<A5;)M;RC &/9L#<B%-,_3$*F,#0[S
M47+E)9-')..$7:L6:\/>M@44OPN$Q#=!)GO(57)2<0WY&9O%+U@2)7.V4;)W
MO!NHZ/? $P5F4Q=FKL#L/[OP]7)K4-.?\^U8&[SF_+BF==.%Z7@.RX#L8D#O
M(,B>/HG/HS<GB.<3\?R4>O:Q;[:@+2SY4W,4;<6,[X=A#\=;XZF][KG3M9;=
M97$:[HZ@+":4Q3^B&%7BP#70P'\BPTJM&H8U,%XBZ)=D_#NZ:8PHP";8C:G9
M#].7/8:]^ L[^0,[/'!! [IR7C<L5WV+WA#3ZG2=7'H7_0KW=]$UUY4@>@DE
MI49GKZBZ]O[V$U2=\]16(3G4#6NZ$D'; -HOE<+]Q!:8+MGL)U!+ P04
M" !SBWA:L0]I%?L"  #F!P  &0   'AL+W=O<FMS:&5E=',O<VAE970T,BYX
M;6RM5=]OVC 0_E>LK)HZJ6U^06@[B 1ET_90J2KK]C#MP20'L>K8F6V@^^]W
M=D)&(: ^[ 5LY^[S=_>=[X8;J9YU 6#(2\F%'GF%,=6M[^NL@)+J*UF!P"\+
MJ4IJ<*N6OJX4T-PYE=R/@B#Q2\J$EP[=V8-*AW)E.!/PH(A>E255?R; Y6;D
MA=[VX)$M"V,/_'18T27,P#Q5#PIW?HN2LQ*$9E(0!8N1-PYO[P;6WAE\9[#1
M.VMB(YE+^6PW7_.1%UA"P"$S%H'BWQKN@',+A#1^-YA>>Z5UW%UOT3^[V#&6
M.=5P)_D/EIMBY%U[)(<%77'S*#=?H(FG;_$RR;7[)9O&-O!(MM)&EHTS,BB9
MJ/_I2Y.''8<P.>(0-0[1OD/OB$/<.,0NT)J9"VM*#4V'2FZ(LM:(9A<N-\X;
MHV'"JC@S"K\R]#/IK%:/R 71;"G8@F54&,QN)E?",+$DE>0L8Z OR+@^U*A>
M!FQ-YQP(%3G)%.3,$"ZU!DW.IV HX_H#N21/LRDY/_M S@@3Y%LA5QKM]= W
MR-S>[V<-RTG-,CK",HS(O12FT.23R"%_#>!CR&W<T3;N2702<0K9%8G#"Q(%
M4:^#T-W;W>,3=.)6AMCAQ4?PQAR?$Q49Y@]?)H&7"LL<]E/[\U%R3K!\-U3E
MO[K26-_2Z[[%=H1;7=$,1AX^>0UJ#5[Z_EV8!!^[4O"?P%XEI-<FI'<*/9U0
M;M-Q0>:P9$+80L02K4 QF7<%7J/U'9KM7.MTD%P/_?5N/(<V<3]L;5[1[+<T
M^R=ICG.4!]N1)EE!U1(5,Y)D4N,CL2_#ZBA0N2[&-7"RPR;8XWMHD01)-]^D
MY9N<Y#N%?.7Z9R>EY.#"R^BFM\>JPRB\ONFF-6AI#=ZF-F#23NH\.-"P-]AG
M>&BS6PLU07^G99: RME)@BK:!E=WD?:T'E83'%:NJ>^=XQ ;N][M_X.I)^ ]
M%@3#RN"P0,C@:H",5#U5ZHV1E6O,<VFPS;ME@8,8E#7 [PLIS79C+VA'>_H7
M4$L#!!0    ( '.+>%H@(91J  0  "H7   9    >&PO=V]R:W-H965T<R]S
M:&5E=#0S+GAM;+5876_;-A3]*X16#"W06:+\$<>S#21.@NW!6%"OVT.Q!T:Z
MLHE*I$I2L0OLQX^B%,GJ;"8*F!=;HG@/[[D\H@[N?,_%5[D#4.B0I4PNO)U2
M^<SW9;2#C,@!SX'I)PD7&5'Z5FQ]F0L@L0G*4C\,@HF?$<J\Y=R,W8OEG!<J
MI0SN!9)%EA'Q_1I2OE]XV'L:^$2W.U4.^,MY3K:P ?4YOQ?ZSF]08IH!DY0S
M)"!9>%=XM@K#,L#,^(O"7AY=HY+* ^=?RYO?XX47E!E!"I$J(8C^>X05I&F)
MI//X5H-ZS9IEX/'U$_J=(:_)/! )*Y[^36.U6WA3#\60D")5G_C^-Z@)C4N\
MB*?2_*)]/3?P4%1(Q;,Z6&>045;]DT-=B*, /#D3$-8!X8\!HS,!PSI@:(A6
MF1E:-T21Y5SP/1+E;(U67IC:F&C-AK)R&S=*Z*=4QZGEIMH^Q!,DZ9;1A$:$
M*5W=B!=,4;9%.4]I1$%^1'?T #$B4H*2Z/T-*$)3^0']@CYO;M#[=Q_0.T09
M6M,TU1LDY[[2^96K^%&=RW652W@F%QRB-6=J)]$MBR'N OB:6,,N?&)W'5H1
M;R :H"'^B,(@')U(:/7R\*$EG6%3[*'!&Y[!ZQ3PR]6#5$++^)]3E:J 1J>!
MRG=[)G,2P<+3+Z\$\0C>\N>?\"3X]11+1V =SJ.&\\B&KFNH02-*S$L+!WW\
M2#A%N$*9&I3R['E<!H/+N?]XS./_<_!@V,SII#=NTAM;T_N3:WEKE7]90_8
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
ME NP^X64YF"X _J!G?X!4$L#!!0    ( '.+>%I_(>U29@(  #L&   9
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
MU3([A<Q.O<P=:0B>U?=:0)7$SH'S;G=/WZ&)W6Y5J[LLU%W6JILFW _59S-
M]^"'E$5L\8(>;R"> :^LZUJZM]9U0V2ER+M%Y-WWZ^YNDUEHB*R4A5Z1A=Y_
M=7>OHN1Z]EY=OF)4$F9;VY/,:JR_<ZJ]UCT06FUFN4>D[ARZ=GT7*9%4%TU-
MX]13O+5FFF(K!^QL W;>KWER[J8RT1!;.1/;&<&N/7Q?;: <7FZ._;*LM2D+
MVQ[;=OVY_:;V.3R?SP]5UAME,LV=T34&OD@G>H%\G9YL$"QVLUO#2-\:].B[
MMZ]N$\-TAC:W--E5Y ;S!:$"13!7E-;%I5+$L^D^6TBV3 ?D&9-JW$X?0W4C
M JX-U/LY8W*ST Z*.Y;W%U!+ P04    " !SBWA:]4;3TYD"  !R!P  &0
M 'AL+W=O<FMS:&5E=',O<VAE970U-2YX;6RME5UOFS 4AO^*Q:JIE;;R#5U'
MD-I$TW8Q+6K:[6+:A0,GP:JQF>U\[-_/-A2E@4:=M!NPX;ROGQ?P(=MQ\2@K
M (7V-65RXE1*-=>N*XL*:BPO>0-,WUEQ46.EIV+MRD8 +JVHIF[@>8E;8\*<
M/+/7YB+/^$91PF ND-S4-19_;H'RW<3QG:<+=V1=*7/!S;,&KV$!ZJ&9"SUS
M>Y>2U, DX0P)6$V<&_]ZFIIZ6_"=P$X>C)%)LN3\T4R^E!/',T! H5#& >O3
M%J9 J3'2&+\[3Z=?T@@/QT_NGVQVG66))4PY_4%*54V<*P>5L,(;JN[X[C-T
M>6+C5W J[1'MVMHX=E"QD8K7G5@3U(2U9[SOGL.!P(]>$ 2=('BM(.P$H0W:
MDME8,ZQPG@F^0\)4:S<SL,_&JG4:PLQ;7"BA[Q*M4_E-48@-E(@2O"24* (2
MG<] 84+E!7J/'A8S='YV@<X08>B^XAN)62DS5^FUC8-;=.O<MNL$+ZPS@^(2
MA?X[%'A!-"*?OEX>/I>[.G$?.^AC!]8O_(?8/V^64@G]7?T:B]?Z1>-^9J]=
MRP87,''T9I(@MN#D;]_XB?=Q+.Q_,GL6/>RCAZ?<\P6F6)B\^D6B@M>Z'TBL
MVDU)L8)R+'UK&5M+TQBVN9]>)9F[/4PU+ JC..Z+GM%&/6UTDO8>[V'T<VME
MR<%B:1 ? 0UKKE)OG"?N>>*3/'/!5R!-#\.T>X),ZI9!V'J,,AX0Z/9Z1#FL
M\1-_G#+I*9.3E-]4!6*,)QFL%4?!$<^P)GJ))^UYTI,\(]MMC"X=?D!!'![A
M#8NB#U%ZQ.<>=$3S-_J*Q9HPB2BLM,R[3+5>M!V^G2C>V":YY$JW7#NL]$\1
MA"G0]U><JZ>)Z;O];S;_"U!+ P04    " !SBWA:MG_(>:<)  !2:   &0
M 'AL+W=O<FMS:&5E=',O<VAE970U-BYX;6RMG5UOHT@:A?\*\HY6W5)/FRH,
MMK.)I>[P;66FE?3L7(SF@MCE!#4?7L!)]VI^_ +&QD!1@=ESD]CX?1^7H0Y5
MU"F*Z]<X^98^,Y9)W\,@2F\FSUFVOYI.T\TS"[WT8[QG4?[)+DY"+\O?)D_3
M=)\P;ULFA<&4RK(V#3T_FJRNRVU?DM5U?,@"/V)?$BD]A*&7_/C,@OCU9D(F
MIPWW_M-S5FR8KJ[WWA-[8-EO^R])_FYZIFS]D$6I'T=2PG8WDT_D:JTH14(9
M\6^?O:87KZ7BISS&\;?BC;.]F<A%B5C -EF!\/)_+^R6!4%!RLOQGPHZ.7]G
MD7CY^D0WRQ^?_YA'+V6W<?"[O\V>;R:+B;1E.^\09/?QJ\VJ'Z06O$T<I.5?
MZ;6*E2?2YI!F<5@EYR4(_>CXW_M>[8B+!$I[$FB50(<F*%6",C1A5B7,AB:H
M58(Z-$&K$K2A"?,J83XT85$E+(8F+*N$92NA_\#)IR,G#_T.<C[8QTIWK"5E
M%=.]S%M=)_&KE!3Q.:]X4=;3,C^O67Y42.HA2_)/_3PO6SVPIUP@6:Z.?9QD
M?O3T0?IUSQ*O>"GM_,B+-KX7Y!^G>1U-I7@GI57&.YUEGA^D[Z6?)#^2OC['
MA]2+MNGU-,O+5="GFZH,GX]EH#UE4*2[.,J>4\F(MFS+R7?%^80* --\AYSW
M"CWME<]42-39YJ.DD \2E>E,^NU!E][]])Y3L%LQYH'M<XS\)D878]Q#- AC
MB#%W7C+H1YG#]XTBP%C#]XT(8P_?-R*,,WS?B##NWZ@W4J4Q#F[]?^_J1O56
MSJ)72JXR5/32'Y\>TRS)V[<_>?(]TF9\6M'H7Z5[;\-N)GFKGK+DA4U6__P'
MT>1_\22#A.E(F(&$F4B8A8392)B#A+E(V!H$:PAL=A;83$1?_7(('UE2M);Q
MN3&MVLU4^DMP0O@LY(Z5&A*F(V$&$F8B81829B-A#A+F'F%:"2LNNUY6Y'KZ
M<JD?T-<U]*.>]:,.:J#N!S90*E(U2)B.A!E(F(F$64B8C80Y2)B+A*U!L(;
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
M ]CY)2%T=\ O4&W3'?\#4$L#!!0    ( '.+>%HS@OCFL@(  (8'   9
M>&PO=V]R:W-H965T<R]S:&5E=#4X+GAM;*V546_:,!#'OXJ555LK=20D)%L[
MB%2@U?90J6K7[6':@TD.8M6Q,]N!]MOO[$!&64!=M1=B.W?_N]^9W U74CWH
M L"0QY(+/?(*8ZISW]=9 275/5F!P#=SJ4IJ<*L6OJX4T-PYE=P/@R#Q2\J$
MEP[=V8U*A[(VG FX443794G5TQBX7(V\OK<YN&6+PM@#/QU6= %W8.ZK&X4[
MOU7)60E",RF(@OG(N^B?3Q)K[PR^,5CIK36Q)#,I'^SF2S[R IL0<,B,5:#X
M6,($.+="F,:OM:;7AK2.V^N-^I5C1Y89U3"1_#O+33'R/GHDASFMN;F5J\^P
MYHFM7B:Y=K]DU=C&9Q[):FUDN7;&#$HFFB=]7-=ARZ&?['$(UP[AKL-@CT.T
M=H@<:).9PYI20].ADBNBK#6JV86KC?-&&B;L+=X9A6\9^IGT%@Q3@-=BB*9+
M)A::5)P*<CP%0QG7)^0]N;^;DN.C$W)$F"!?"UEK*G(]] W&MRI^MHXU;F*%
M>V+U0W(MA2DTN10YY,\%?$R\S3[<9#\.#RI.(>N1J']*PB <="0T>;E[=""=
MJ"UFY/2B?RSFCXN9-@K_L3^[BM9H#KHU[5=\KBN:P<C#SU2#6H*7OGW33X)/
M7<#_2>P9_J#%'QQ23R_+BLLG4/C_-%F!^"3#ZU9L5KLOM@*586FP-W15H9$^
M<]*V]2S3H!</_>4VW,'PKX2+6[CX)7#P3N^C(MA3&_0NOKB#+TAV  ^F\$K
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
M;W)K<VAE971S+W-H965T-C,N>&ULM9M;;]LX%L??]U,0WF+1 JTMDKK8V<1
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
MT:*8TX03IVIBR&;$UGG!'#19.I2U<OB*3,T!DJ7 K)"9+VT$S$V+VM57><8
M55.!JMD]VPE%H^_&$MM)WC@K1S,&?)H*/LUSTI50/'JV\9-C+A;5.1MNKV\\
MA=?*SDDY0O&T;\?"3?4-1<&:V3U;" 6B[]EJ@8P!3*8")O/_RO-!L>E;N+6@
M4%.N,G6475>L8SKG(4 R^K,W=+I0@#D0PF1QC@%$I@(BLR4=-]QV6$M+3[1>
M33T9YTP=;8$8@Y5,Q4HFS"_G;X>U&&P28Z&G<*WIO)J-A(WW??5509$%)^+Z
M[(>UF&S0(ZM5V0/24MJP\;YZ*$JR8$KJLR?68K))#YVGJ@L#;+BO%@JE+!BE
MSM\/:S'8I(3.8IH28V"8I3#,:LD!#K$5UM)&DSA4FU/MJ5G%U)I2I9FW'+?"
M-<L<9:_"&@C-LN#& #VK<#P !KU"0BU]&?N8/#Z>N761-5)ZV=TRM7X^!@I:
M"@4M.'=V5I;?&C1K-I2U<N2*)"TX:S;(3;YN::0A@=U2BW1.^L.&^FH8\V?Y
MBF(MJS57]%H]79,?;C@D?)[/F5*<4]E/I[(K&7#<_XZNCWC>-T7<-[W@;ZCT
MEX@D)U&MP6WR3)#>U4J;=6'/"D?S]HQODR..D73E&(BKY !5?C4_1GF='!ZL
M7+_!%[>XYKH4[>(F/7>I_3*7O\R38X*JZ?0\YU>72Z"/D,\VT@UCZLB9@J='
M)-,O(CPDAP:?0R'"??)QQ]PUXW$!^?LF#,7I2]Q ?E!U^3]02P,$%     @
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
M8Z!_WW"NGF_,:;UY.[/\#U!+ P04    " !SBWA:2Q"AUR8#   5"P  &0
M 'AL+W=O<FMS:&5E=',O<VAE970V-BYX;6RU5EUOVC 4_2M65DVMU#5?$*"#
M2$ WK0^5JM)V#]4>3'(A5AT[LPUT_WYV$E)"0]1*] 5LY][C<XYSG3O<</$L
M$P"%7E+*Y,A*E,HN;5M&":187O ,F'ZRX"+%2D_%TI:9 !SG22FU/<<)[!03
M9H7#?.U6A$.^4I0PN!5(KM(4BW\3H'PSLEQKNW!'EHDR"W8XS/ 29J >LENA
M9W:%$I,4F"2<(0&+D35V+Z>N8Q+RB$<"&[DS1D;*G/-G,[F.1Y9C& &%2!D(
MK/_6, 5*#9+F\;<$M:H]3>+N>(O^,Q>OQ<RQA"FGOTFLDI'5MU ,"[RBZHYO
M?D$IJ&OP(DYE_HLV9:QCH6@E%4_+9,T@):SXQR^E$3L);G @P2L3O/V$SH$$
MOTSP<Z$%LUS6%58X' J^0<)$:S0SR+W)L[4:PLPQSI303XG.4^$UBW@*2.$7
MD.?H$=,5+NRE^H QBP#IB;8%A(#8A"$L)2B)3J] 84+E&?J&'F97Z/3D#)T@
MPM!]PE<2LU@.;:4)FFWLJ"0S*<AX!\BX'KKA3"42_6 QQ'4 6RNKY'E;>1.O
M%?$*H@ODN^?(<[Q. Z'I^]/]%CI^Y;:?XW4.XI5&EK;?:S_'A9]/-Y#.0?QI
M<JT5U!3ZI<QP!"-+5[($L08K_/K%#9SO38J/!%;3WZGT=W)T_X#^IO?KZ8Y3
MBG1-;K"(&^5WCBG_2& U^=U*?K?U^">8&LGG: Y+PAAA2\07* -!>-PDO$#K
MYFCF/EZ'/7<PM->[>M[&!-V@BJG1#"J:02O-<1P3<T@210D62U/W7%?V]J)
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
M@WHL[X2>^;5*1@I@DG"&!"Q&WG5X-1D8>VOPC<!:[HR1B63.^9.9W&0C+S!
M0"%51@'KQPHF0*D1TAB_-II>O:5QW!UOU3_;V'4L<RQAPNEWDJE\Y T\E,$"
M5U3-^/H+;.+I&KV44VE_T=K9]KL>2BNI>+%QU@0%8>Z)GS=YV'$(>T<<HHU#
MM._0.>(0;QQB&Z@CLV%-L<+)4/ U$L9:JYF!S8WUUM$09O[%>R7T6Z+]5'+#
M4EX 4O@9Y#EZ9 )2OF3D-V1F#<V!P8(HB4ZGH#"A\@Q=H,?[*3H].4,GB##T
MD/-*8I;)H:\TCU'UT\W>8[=W=&3O,$*WG*E<HD\L@^RM@*\#J:.)MM&,HU;%
M*:27* [/411$G0:@R=^[QRTX<9W<V.K%1_2.I_/'C%.*]$%<8Y'];$J=4^XT
M*YO:OI(E3F'DZ>*5(%;@)>_?A;W@8U/8_TGL31(Z=1(Z;>K'DW"N1TO"&&%+
MQ!>H!$%XUI0*I]^U^N966B7AA_[07^U&V&#3B6J;-^#=&KS;"OZ@64LNB;EN
MI"9_ H:R2AA<E8,N3B& J19N)]_;88K#/>Q#DT'<3-VKJ7NMU#/(JM0AZSO>
M)OPU"%VOI:85Z 6P:*S8W@'01=3=@SZT"9J9^S5SOY7Y*RXEF#,@%5:5LD-*
M"J)G!KN)L]_"X"@/+2ZB03/GH.8<_.M1!I:U'^+!P0&-@G@/^=!F]Z [9'_G
MKB] +&T+E"CE%5/NHJQ779<=ZRYKN]'>NNZ^U[;I^*\RKG7?8J'K4B(*"RT9
M7)IF)UP[=!/%2]M1YESI_F2'N?Z" &$,]/L%YVH[,1O4WR3)'U!+ P04
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
MZK@T3@/X]\LH8KN=] 3[_QDP^P]02P,$%     @ <XMX6LU#60GC @  80D
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
M-6&)0'Z_H52<;I( Q4'C\%]02P,$%     @ <XMX6NG^MV(X P  R!,   T
M  !X;"]S='EL97,N>&ULW5A=3]LP%/TKD1D32!-IFQ&:T5;:*B%-VB8D>-@;
M<ANGM>38F>.R=K]^OG::?N"+& ];NU0T]CT^YQ[;-\0PJ,U*L+LY8R9:ED+6
M0S(WIOH0Q_5TSDI:7ZB*28L42I?4V*Z>Q76E&<UK()4B[G4Z:5Q2+LEH(!?E
M36GJ:*H6T@Q)VH8B?_N<#TDW?4\B+S=6.1N2A[.W/Q;*7+^)_/WDW<E)Y^'\
M>C]^YH!S$@=%+U\@>M'!=2V&2:<ODGY&&1.^VA5VHT^MCN>=8K1^@&;M;YC0
MP<A9D+Q%=<2XV<G1H%!RLZ$)\0&K3$L6/5(Q)&,J^$1S8!6TY&+EPST(3)50
M.C*VDFRJ+D3J7Q[N^AX46:-3<JFTR^TS^.]),WP/6/? (!>B-=@C/C :5-08
MIN6-[;C!+O@$BIKV_:JR#F>:KKJ]2[(AN)M-,E$Z9[I-TR7KT&@@6 %V-)_-
MX6Y4%0-HC"IM(^=TIB1U'M:,IF%EITR(.W@"OQ<[VLMB:\\ZL&.R;5I#3=/+
M^ [H;ZMY[6W9Y%6Z4<4?E?FTL-.1K@^%S6XU*_C2]9=%:P!3[^+JM*K$ZJ/@
M,UDR/_D7)QP-Z)H7S97FOVPV*)6I#3!-HD>F#9]N1WYJ6MVSI5F7T[+ /?>.
MT//?7><9DTQ3L6W:UOXAK_*K'3>OK'_AV?U:V7<<-)E<';['YC5]Z";38S!Y
M%-O=/P:3V>&;3 [38]P<,K9.,COGF#8:P7EQ2+[!R5-LDD:3!1>&RZ8WYWG.
MY)/CC)4W=&+_3-G1M^-S5M"%,/<M."2;]E>6\T69M:-N82&:49OV%YA>-VT/
MJS87ESE;LGS<=/5LXIJ1;=BLS06$?>3&76$$XW@LC "&Y<$<8!S/PO+\3_/I
MH_/Q&.:M'T3Z**>/<CPKA(S=!\L3YF3V"L\TRY(D3;$5'8^##L;8NJ4I_(35
M,&_ P/) IC];:WRW\0IYO@ZP/7VN0K"9XI6(S11?:T#"ZP:,+ OO-I8'&-@N
M8+4#^<-YH*;"G"2!7<6\84\PCF09AD MAFLT39'52>$3WA_L*4F2+ LC@(4=
M) F&P-.((Y@#\( A2>+>@WOOHWC]GHHW_[L;_0902P,$%     @ <XMX6I>*
MNQS     $P(   L   !?<F5L<R\N<F5L<YV2N6[#, Q ?\70GC 'T"&(,V7Q
M%@3Y 5:B#]@2!8I%G;^OVJ5QD L9>3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(
MMB6/:<Z10J[4+!XUA]) 1-MC0[!:+#Y +AEFM[UD%J=SI%>(7->=I3W;+T]!
M;X"O.DQQ0FE(2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B
M':5_'<?VD-/IKV,BM'I;Z/EQ:%0*CMQC)8QQ8K3^-8+)#^Q^ %!+ P04
M" !SBWA:<Z2(!:,%  "5,   #P   'AL+W=O<FMB;V]K+GAM;,6;45/J.!2
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
M '.+>%I&QTU(E0   ,T    0              "  0    !D;V-0<F]P<R]A
M<' N>&UL4$L! A0#%     @ <XMX6H?H]TSR    *P(  !$
M ( !PP   &1O8U!R;W!S+V-O<F4N>&UL4$L! A0#%     @ <XMX6IE<G",0
M!@  G"<  !,              ( !Y $  'AL+W1H96UE+W1H96UE,2YX;6Q0
M2P$"% ,4    " !SBWA:@9$3)LP'  !(,P  &               @($E"
M>&PO=V]R:W-H965T<R]S:&5E=#$N>&UL4$L! A0#%     @ <XMX6HN*):%:
M!P  JB   !@              ("!)Q   'AL+W=O<FMS:&5E=',O<VAE970R
M+GAM;%!+ 0(4 Q0    ( '.+>%KDQ(O%5P0  /@2   8              "
M@;<7  !X;"]W;W)K<VAE971S+W-H965T,RYX;6Q02P$"% ,4    " !SBWA:
M0BJ/BB$%  !]%0  &               @(%$'   >&PO=V]R:W-H965T<R]S
M:&5E=#0N>&UL4$L! A0#%     @ <XMX6MV[D*_+ @  0P<  !@
M     ("!FR$  'AL+W=O<FMS:&5E=',O<VAE970U+GAM;%!+ 0(4 Q0    (
M '.+>%IV8\YWX@8  $XM   8              " @9PD  !X;"]W;W)K<VAE
M971S+W-H965T-BYX;6Q02P$"% ,4    " !SBWA:;!B0SHT&   ;'   &
M            @(&T*P  >&PO=V]R:W-H965T<R]S:&5E=#<N>&UL4$L! A0#
M%     @ <XMX6J=:UTO("0  K!<  !@              ("!=S(  'AL+W=O
M<FMS:&5E=',O<VAE970X+GAM;%!+ 0(4 Q0    ( '.+>%JH)Z<?)A8  )4]
M   8              " @74\  !X;"]W;W)K<VAE971S+W-H965T.2YX;6Q0
M2P$"% ,4    " !SBWA:B::1S6@"  !1!0  &0              @('14@
M>&PO=V]R:W-H965T<R]S:&5E=#$P+GAM;%!+ 0(4 Q0    ( '.+>%JQMP =
MZ (  #X&   9              " @7!5  !X;"]W;W)K<VAE971S+W-H965T
M,3$N>&UL4$L! A0#%     @ <XMX6N,YEJX5 P  !@<  !D
M ("!CU@  'AL+W=O<FMS:&5E=',O<VAE970Q,BYX;6Q02P$"% ,4    " !S
MBWA:(/5>]7X"  "2!0  &0              @(';6P  >&PO=V]R:W-H965T
M<R]S:&5E=#$S+GAM;%!+ 0(4 Q0    ( '.+>%HP=WR=X0<  .@1   9
M          " @9!>  !X;"]W;W)K<VAE971S+W-H965T,30N>&UL4$L! A0#
M%     @ <XMX6O6\X3?H @  BP8  !D              ("!J&8  'AL+W=O
M<FMS:&5E=',O<VAE970Q-2YX;6Q02P$"% ,4    " !SBWA:?I08X)@(  !A
M&0  &0              @('':0  >&PO=V]R:W-H965T<R]S:&5E=#$V+GAM
M;%!+ 0(4 Q0    ( '.+>%JDH>Q#;0H  #$<   9              " @99R
M  !X;"]W;W)K<VAE971S+W-H965T,3<N>&UL4$L! A0#%     @ <XMX6M..
M;*FD"P  X1T  !D              ("!.GT  'AL+W=O<FMS:&5E=',O<VAE
M970Q."YX;6Q02P$"% ,4    " !SBWA:NR4)6$T$  #T"@  &0
M    @($5B0  >&PO=V]R:W-H965T<R]S:&5E=#$Y+GAM;%!+ 0(4 Q0    (
M '.+>%H<\$:_Y (  ) &   9              " @9F-  !X;"]W;W)K<VAE
M971S+W-H965T,C N>&UL4$L! A0#%     @ <XMX6G^2Y4_! P  50@  !D
M             ("!M)   'AL+W=O<FMS:&5E=',O<VAE970R,2YX;6Q02P$"
M% ,4    " !SBWA:SLIM$6H#  # !P  &0              @(&LE   >&PO
M=V]R:W-H965T<R]S:&5E=#(R+GAM;%!+ 0(4 Q0    ( '.+>%J3 T]$.@,
M 'T'   9              " @4V8  !X;"]W;W)K<VAE971S+W-H965T,C,N
M>&UL4$L! A0#%     @ <XMX6OS H1;? @  I@8  !D              ("!
MOIL  'AL+W=O<FMS:&5E=',O<VAE970R-"YX;6Q02P$"% ,4    " !SBWA:
MK+U!"9("  #:!0  &0              @('4G@  >&PO=V]R:W-H965T<R]S
M:&5E=#(U+GAM;%!+ 0(4 Q0    ( '.+>%KA%6(A0P(  ) &   9
M      " @9VA  !X;"]W;W)K<VAE971S+W-H965T,C8N>&UL4$L! A0#%
M  @ <XMX6JMP"4K&"@  FS(  !D              ("!%Z0  'AL+W=O<FMS
M:&5E=',O<VAE970R-RYX;6Q02P$"% ,4    " !SBWA:)=):VS,7  !)1@
M&0              @($4KP  >&PO=V]R:W-H965T<R]S:&5E=#(X+GAM;%!+
M 0(4 Q0    ( '.+>%KA;0A,UP4  *L.   9              " @7[&  !X
M;"]W;W)K<VAE971S+W-H965T,CDN>&UL4$L! A0#%     @ <XMX6C8%C%5M
M @  2P4  !D              ("!C,P  'AL+W=O<FMS:&5E=',O<VAE970S
M,"YX;6Q02P$"% ,4    " !SBWA:-KW(3/ "   R!@  &0
M@($PSP  >&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM;%!+ 0(4 Q0    ( '.+
M>%H% IY2P@(  #D&   9              " @5?2  !X;"]W;W)K<VAE971S
M+W-H965T,S(N>&UL4$L! A0#%     @ <XMX6D_YJ("% @  A 4  !D
M         ("!4-4  'AL+W=O<FMS:&5E=',O<VAE970S,RYX;6Q02P$"% ,4
M    " !SBWA:-5@^#J($  !T"@  &0              @($,V   >&PO=V]R
M:W-H965T<R]S:&5E=#,T+GAM;%!+ 0(4 Q0    ( '.+>%H?FAO0! 4  &$,
M   9              " @>7<  !X;"]W;W)K<VAE971S+W-H965T,S4N>&UL
M4$L! A0#%     @ <XMX6K8E,2>-!P  2Q,  !D              ("!(.(
M 'AL+W=O<FMS:&5E=',O<VAE970S-BYX;6Q02P$"% ,4    " !SBWA:R8M;
MUOP"  "*!@  &0              @('DZ0  >&PO=V]R:W-H965T<R]S:&5E
M=#,W+GAM;%!+ 0(4 Q0    ( '.+>%J&< CO_ (  (,&   9
M  " @1?M  !X;"]W;W)K<VAE971S+W-H965T,S@N>&UL4$L! A0#%     @
M<XMX6H-F$;9A P  A@@  !D              ("!2O   'AL+W=O<FMS:&5E
M=',O<VAE970S.2YX;6Q02P$"% ,4    " !SBWA:T_,OC$0#  !*!P  &0
M            @('B\P  >&PO=V]R:W-H965T<R]S:&5E=#0P+GAM;%!+ 0(4
M Q0    ( '.+>%KL), R6@(  ' %   9              " @5WW  !X;"]W
M;W)K<VAE971S+W-H965T-#$N>&UL4$L! A0#%     @ <XMX6K$/:17[ @
MY@<  !D              ("![OD  'AL+W=O<FMS:&5E=',O<VAE970T,BYX
M;6Q02P$"% ,4    " !SBWA:("&4:@ $   J%P  &0              @($@
M_0  >&PO=V]R:W-H965T<R]S:&5E=#0S+GAM;%!+ 0(4 Q0    ( '.+>%K<
M@1Y>.P(  )P&   9              " @5<! 0!X;"]W;W)K<VAE971S+W-H
M965T-#0N>&UL4$L! A0#%     @ <XMX6MCLG-1( @  "P4  !D
M     ("!R0,! 'AL+W=O<FMS:&5E=',O<VAE970T-2YX;6Q02P$"% ,4
M" !SBWA:S ]O<O(*  #2GP  &0              @(%(!@$ >&PO=V]R:W-H
M965T<R]S:&5E=#0V+GAM;%!+ 0(4 Q0    ( '.+>%I%.3M%40,  !(+   9
M              " @7$1 0!X;"]W;W)K<VAE971S+W-H965T-#<N>&UL4$L!
M A0#%     @ <XMX6B"$F1$7 P  7PT  !D              ("!^10! 'AL
M+W=O<FMS:&5E=',O<VAE970T."YX;6Q02P$"% ,4    " !SBWA:Y#CR)6D#
M  ",#P  &0              @(%'& $ >&PO=V]R:W-H965T<R]S:&5E=#0Y
M+GAM;%!+ 0(4 Q0    ( '.+>%JLLXZD@P(   P&   9              "
M@><; 0!X;"]W;W)K<VAE971S+W-H965T-3 N>&UL4$L! A0#%     @ <XMX
M6B*FP]5@ @  O 4  !D              ("!H1X! 'AL+W=O<FMS:&5E=',O
M<VAE970U,2YX;6Q02P$"% ,4    " !SBWA:?R'M4F8"   [!@  &0
M        @($X(0$ >&PO=V]R:W-H965T<R]S:&5E=#4R+GAM;%!+ 0(4 Q0
M   ( '.+>%J2O%+Q! 0   84   9              " @=4C 0!X;"]W;W)K
M<VAE971S+W-H965T-3,N>&UL4$L! A0#%     @ <XMX6EQF(4A1 P  ;PT
M !D              ("!$"@! 'AL+W=O<FMS:&5E=',O<VAE970U-"YX;6Q0
M2P$"% ,4    " !SBWA:]4;3TYD"  !R!P  &0              @(&8*P$
M>&PO=V]R:W-H965T<R]S:&5E=#4U+GAM;%!+ 0(4 Q0    ( '.+>%JV?\AY
MIPD  %)H   9              " @6@N 0!X;"]W;W)K<VAE971S+W-H965T
M-38N>&UL4$L! A0#%     @ <XMX6KK;NG?I!0  LBL  !D
M ("!1C@! 'AL+W=O<FMS:&5E=',O<VAE970U-RYX;6Q02P$"% ,4    " !S
MBWA:,X+XYK("  "&!P  &0              @(%F/@$ >&PO=V]R:W-H965T
M<R]S:&5E=#4X+GAM;%!+ 0(4 Q0    ( '.+>%H7-W+RQ08  *DY   9
M          " @4]! 0!X;"]W;W)K<VAE971S+W-H965T-3DN>&UL4$L! A0#
M%     @ <XMX6HW&T9^G P   !   !D              ("!2T@! 'AL+W=O
M<FMS:&5E=',O<VAE970V,"YX;6Q02P$"% ,4    " !SBWA:)+?[5AD$  "I
M$@  &0              @($I3 $ >&PO=V]R:W-H965T<R]S:&5E=#8Q+GAM
M;%!+ 0(4 Q0    ( '.+>%KM(F2TR@(  *$(   9              " @7E0
M 0!X;"]W;W)K<VAE971S+W-H965T-C(N>&UL4$L! A0#%     @ <XMX6J<L
M3WK8"   M#H  !D              ("!>E,! 'AL+W=O<FMS:&5E=',O<VAE
M970V,RYX;6Q02P$"% ,4    " !SBWA:-?X3>[X$   4&   &0
M    @(&)7 $ >&PO=V]R:W-H965T<R]S:&5E=#8T+GAM;%!+ 0(4 Q0    (
M '.+>%JT@6JC; 0  *D1   9              " @7YA 0!X;"]W;W)K<VAE
M971S+W-H965T-C4N>&UL4$L! A0#%     @ <XMX6DL0H=<F P  %0L  !D
M             ("!(68! 'AL+W=O<FMS:&5E=',O<VAE970V-BYX;6Q02P$"
M% ,4    " !SBWA:+(;)Z@ $  #:#0  &0              @(%^:0$ >&PO
M=V]R:W-H965T<R]S:&5E=#8W+GAM;%!+ 0(4 Q0    ( '.+>%KV#B]: P,
M )\(   9              " @;5M 0!X;"]W;W)K<VAE971S+W-H965T-C@N
M>&UL4$L! A0#%     @ <XMX6OK(#_7M!@  /T   !D              ("!
M[W ! 'AL+W=O<FMS:&5E=',O<VAE970V.2YX;6Q02P$"% ,4    " !SBWA:
MS4-9">,"  !A"0  &0              @($3> $ >&PO=V]R:W-H965T<R]S
M:&5E=#<P+GAM;%!+ 0(4 Q0    ( '.+>%IQS*G?* @  /YE   9
M      " @2U[ 0!X;"]W;W)K<VAE971S+W-H965T-S$N>&UL4$L! A0#%
M  @ <XMX6MTM<RO) P  ,0\  !D              ("!C(,! 'AL+W=O<FMS
M:&5E=',O<VAE970W,BYX;6Q02P$"% ,4    " !SBWA:QR3:Z;L$  #U%P
M&0              @(&,AP$ >&PO=V]R:W-H965T<R]S:&5E=#<S+GAM;%!+
M 0(4 Q0    ( '.+>%H:14Z3400  '0<   9              " @7Z, 0!X
M;"]W;W)K<VAE971S+W-H965T-S0N>&UL4$L! A0#%     @ <XMX6NG^MV(X
M P  R!,   T              ( !!I$! 'AL+W-T>6QE<RYX;6Q02P$"% ,4
M    " !SBWA:EXJ[',     3 @  "P              @ %IE $ 7W)E;',O
M+G)E;'-02P$"% ,4    " !SBWA:<Z2(!:,%  "5,   #P
M@ %2E0$ >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @ <XMX6L?7<T]' @
MU2L  !H              ( !(IL! 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR
M96QS4$L! A0#%     @ <XMX6A^=A6\) @  V"H  !,              ( !
MH9T! %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&     %( 4@!U%@  VY\!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<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>93
<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>95
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>173</ContextCount>
  <ElementCount>385</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>55</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>7</UnitCount>
  <MyReports>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000100 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/DocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>010000 - Statement - CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedBalanceSheets</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>010100 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>020000 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedStatementsOfOperations</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF OPERATIONS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>030000 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>040000 - Statement - CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>050000 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF CASH FLOWS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>060100 - Disclosure - Description of business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/DescriptionOfBusiness</Role>
      <ShortName>Description of business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>060200 - Disclosure - Summary of significant accounting policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies</Role>
      <ShortName>Summary of significant accounting policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>060300 - Disclosure - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/Inventories</Role>
      <ShortName>Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>060400 - Disclosure - Fixed assets, net</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/FixedAssetsNet</Role>
      <ShortName>Fixed assets, net</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>060500 - Disclosure - Intangible assets, net</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IntangibleAssetsNet</Role>
      <ShortName>Intangible assets, net</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>060600 - Disclosure - Accrued liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/AccruedLiabilities</Role>
      <ShortName>Accrued liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>060700 - Disclosure - Segment reporting</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SegmentReporting</Role>
      <ShortName>Segment reporting</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>060800 - Disclosure - Retirement savings plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/RetirementSavingsPlan</Role>
      <ShortName>Retirement savings plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>060900 - Disclosure - Borrowings</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/Borrowings</Role>
      <ShortName>Borrowings</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>061000 - Disclosure - Stock incentive plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlans</Role>
      <ShortName>Stock incentive plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>061100 - Disclosure - Income taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxes</Role>
      <ShortName>Income taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>061200 - Disclosure - Earnings per share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/EarningsPerShare</Role>
      <ShortName>Earnings per share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>061300 - Disclosure - Stock repurchase program</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockRepurchaseProgram</Role>
      <ShortName>Stock repurchase program</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>061400 - Disclosure - Geographic area information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/GeographicAreaInformation</Role>
      <ShortName>Geographic area information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>061500 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/Leases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>061600 - Disclosure - Quarterly results of operations (unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited</Role>
      <ShortName>Quarterly results of operations (unaudited)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>061700 - Disclosure - Related party transactions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/RelatedPartyTransactions</Role>
      <ShortName>Related party transactions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>061800 - Disclosure - Subsequent events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>061900 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>062000 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure</Role>
      <ShortName>Cybersecurity Risk Management and Strategy Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>070200 - Disclosure - Summary of significant accounting policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Summary of significant accounting policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>080200 - Disclosure - Summary of significant accounting policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables</Role>
      <ShortName>Summary of significant accounting policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>080300 - Disclosure - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/InventoriesTables</Role>
      <ShortName>Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/Inventories</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>080400 - Disclosure - Fixed assets, net (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/FixedAssetsNetTables</Role>
      <ShortName>Fixed assets, net (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/FixedAssetsNet</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>080500 - Disclosure - Intangible assets, net (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IntangibleAssetsNetTables</Role>
      <ShortName>Intangible assets, net (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/IntangibleAssetsNet</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>080600 - Disclosure - Accrued liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/AccruedLiabilitiesTables</Role>
      <ShortName>Accrued liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/AccruedLiabilities</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>080700 - Disclosure - Segment reporting (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SegmentReportingTables</Role>
      <ShortName>Segment reporting (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/SegmentReporting</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>081000 - Disclosure - Stock incentive plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansTables</Role>
      <ShortName>Stock incentive plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/StockIncentivePlans</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>081100 - Disclosure - Income taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesTables</Role>
      <ShortName>Income taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/IncomeTaxes</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>081200 - Disclosure - Earnings per share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/EarningsPerShareTables</Role>
      <ShortName>Earnings per share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/EarningsPerShare</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>081400 - Disclosure - Geographic area information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/GeographicAreaInformationTables</Role>
      <ShortName>Geographic area information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/GeographicAreaInformation</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>081500 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/LeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/Leases</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>081600 - Disclosure - Quarterly results of operations (unaudited) (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables</Role>
      <ShortName>Quarterly results of operations (unaudited) (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>090100 - Disclosure - Description of business (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/DescriptionOfBusinessDetails</Role>
      <ShortName>Description of business (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/DescriptionOfBusiness</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>090202 - Disclosure - Summary of significant accounting policies, Accounts receivable and credit losses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails</Role>
      <ShortName>Summary of significant accounting policies, Accounts receivable and credit losses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>090204 - Disclosure - Summary of significant accounting policies, Fixed assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails</Role>
      <ShortName>Summary of significant accounting policies, Fixed assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>090206 - Disclosure - Summary of significant accounting policies, Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails</Role>
      <ShortName>Summary of significant accounting policies, Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>090208 - Disclosure - Summary of significant accounting policies, Goodwill and intangible assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails</Role>
      <ShortName>Summary of significant accounting policies, Goodwill and intangible assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>090210 - Disclosure - Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails</Role>
      <ShortName>Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>090212 - Disclosure - Summary of significant accounting policies, Revenue recognition - Contract balances (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails</Role>
      <ShortName>Summary of significant accounting policies, Revenue recognition - Contract balances (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>090214 - Disclosure - Summary of significant accounting policies, Revenue recognition - Remaining performance obligations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails</Role>
      <ShortName>Summary of significant accounting policies, Revenue recognition - Remaining performance obligations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>090216 - Disclosure - Summary of significant accounting policies, Concentration of credit risk (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails</Role>
      <ShortName>Summary of significant accounting policies, Concentration of credit risk (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>090218 - Disclosure - Summary of significant accounting policies, Engineering, design and product development (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails</Role>
      <ShortName>Summary of significant accounting policies, Engineering, design and product development (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>090220 - Disclosure - Summary of significant accounting policies, Advertising (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails</Role>
      <ShortName>Summary of significant accounting policies, Advertising (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>090300 - Disclosure - Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/InventoriesDetails</Role>
      <ShortName>Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/InventoriesTables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>090400 - Disclosure - Fixed assets, net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/FixedAssetsNetDetails</Role>
      <ShortName>Fixed assets, net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/FixedAssetsNetTables</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>090500 - Disclosure - Intangible assets, net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IntangibleAssetsNetDetails</Role>
      <ShortName>Intangible assets, net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/IntangibleAssetsNetTables</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>090600 - Disclosure - Accrued liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/AccruedLiabilitiesDetails</Role>
      <ShortName>Accrued liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/AccruedLiabilitiesTables</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>090702 - Disclosure - Segment reporting, Operating financial results of segment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails</Role>
      <ShortName>Segment reporting, Operating financial results of segment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>090704 - Disclosure - Segment reporting, Reconciliation of net (loss) income to EBITDA and adjusted EBITDA (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails</Role>
      <ShortName>Segment reporting, Reconciliation of net (loss) income to EBITDA and adjusted EBITDA (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>090800 - Disclosure - Retirement savings plan (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/RetirementSavingsPlanDetails</Role>
      <ShortName>Retirement savings plan (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/RetirementSavingsPlan</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>090900 - Disclosure - Borrowings (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/BorrowingsDetails</Role>
      <ShortName>Borrowings (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/Borrowings</ParentRole>
      <Position>59</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>091000 - Disclosure - Stock incentive plans, Stock incentive plans (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails</Role>
      <ShortName>Stock incentive plans, Stock incentive plans (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>091002 - Disclosure - Stock incentive plans, Assumptions used in option valuation calculations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails</Role>
      <ShortName>Stock incentive plans, Assumptions used in option valuation calculations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>091004 - Disclosure - Stock incentive plans, Share-based compensation expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails</Role>
      <ShortName>Stock incentive plans, Share-based compensation expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>091006 - Disclosure - Stock incentive plans, Stock options (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails</Role>
      <ShortName>Stock incentive plans, Stock options (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>091100 - Disclosure - Income taxes, Components of income tax expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails</Role>
      <ShortName>Income taxes, Components of income tax expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>091102 - Disclosure - Income taxes, Deferred tax assets and liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails</Role>
      <ShortName>Income taxes, Deferred tax assets and liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>091104 - Disclosure - Income taxes, Valuation allowance on deferred tax assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails</Role>
      <ShortName>Income taxes, Valuation allowance on deferred tax assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>091106 - Disclosure - Income taxes, Statutory to effective tax rate reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails</Role>
      <ShortName>Income taxes, Statutory to effective tax rate reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>091108 - Disclosure - Income taxes, Unrecognized tax benefits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails</Role>
      <ShortName>Income taxes, Unrecognized tax benefits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>091200 - Disclosure - Earnings per share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/EarningsPerShareDetails</Role>
      <ShortName>Earnings per share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/EarningsPerShareTables</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>091300 - Disclosure - Stock repurchase program (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockRepurchaseProgramDetails</Role>
      <ShortName>Stock repurchase program (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/StockRepurchaseProgram</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>091400 - Disclosure - Geographic area information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/GeographicAreaInformationDetails</Role>
      <ShortName>Geographic area information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/GeographicAreaInformationTables</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>091500 - Disclosure - Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/LeasesDetails</Role>
      <ShortName>Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/LeasesTables</ParentRole>
      <Position>72</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>091600 - Disclosure - Quarterly results of operations (unaudited) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails</Role>
      <ShortName>Quarterly results of operations (unaudited) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables</ParentRole>
      <Position>73</Position>
    </Report>
    <Report instance="ef20039038_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>091700 - Disclosure - Related party transactions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/RelatedPartyTransactionsDetails</Role>
      <ShortName>Related party transactions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/RelatedPartyTransactions</ParentRole>
      <Position>74</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-K" isDefinitelyFs="true" isUsgaap="true" original="ef20039038_10k.htm">ef20039038_10k.htm</File>
    <File>tact-20241231.xsd</File>
    <File>tact-20241231_cal.xml</File>
    <File>tact-20241231_def.xml</File>
    <File>tact-20241231_lab.xml</File>
    <File>tact-20241231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>image01.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="803">http://fasb.org/us-gaap/2024</BaseTaxonomy>
    <BaseTaxonomy items="16">http://xbrl.sec.gov/cyd/2024</BaseTaxonomy>
    <BaseTaxonomy items="38">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
    <BaseTaxonomy items="4">http://xbrl.sec.gov/ecd/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>98
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "ef20039038_10k.htm": {
   "nsprefix": "tact",
   "nsuri": "http://transact-tech.com/20241231",
   "dts": {
    "inline": {
     "local": [
      "ef20039038_10k.htm"
     ]
    },
    "schema": {
     "local": [
      "tact-20241231.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/2004/ref-2004-08-10.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/factExplanatory-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-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/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd",
      "https://xbrl.sec.gov/country/2024/country-2024.xsd",
      "https://xbrl.sec.gov/currency/2024/currency-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd",
      "https://xbrl.sec.gov/exch/2024/exch-2024.xsd",
      "https://xbrl.sec.gov/naics/2024/naics-2024.xsd",
      "https://xbrl.sec.gov/sic/2024/sic-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "tact-20241231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tact-20241231_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "tact-20241231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tact-20241231_pre.xml"
     ]
    }
   },
   "keyStandard": 356,
   "keyCustom": 29,
   "axisStandard": 25,
   "axisCustom": 0,
   "memberStandard": 37,
   "memberCustom": 17,
   "hidden": {
    "total": 11,
    "http://xbrl.sec.gov/dei/2024": 6,
    "http://fasb.org/us-gaap/2024": 5
   },
   "contextCount": 173,
   "entityCount": 1,
   "segmentCount": 55,
   "elementCount": 605,
   "unitCount": 7,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2024": 803,
    "http://xbrl.sec.gov/dei/2024": 38,
    "http://xbrl.sec.gov/cyd/2024": 16,
    "http://xbrl.sec.gov/ecd/2024": 4
   },
   "report": {
    "R1": {
     "role": "http://transact-tech.com/role/DocumentAndEntityInformation",
     "longName": "000100 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://transact-tech.com/role/ConsolidatedBalanceSheets",
     "longName": "010000 - Statement - CONSOLIDATED BALANCE SHEETS",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
     "longName": "010100 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "unitRef": "U003",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "us-gaap:PreferredStockParOrStatedValuePerShare",
       "span",
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
     "longName": "020000 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:CostOfRevenue",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome",
     "longName": "030000 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ComprehensiveIncomeNetOfTax",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
     "longName": "040000 - Statement - CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY",
     "shortName": "CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "c20221231_StatementEquityComponentsAxis_CommonStockMember",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20221231_StatementEquityComponentsAxis_CommonStockMember",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R7": {
     "role": "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
     "longName": "050000 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ForeignCurrencyTransactionGainLossUnrealized",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R8": {
     "role": "http://transact-tech.com/role/DescriptionOfBusiness",
     "longName": "060100 - Disclosure - Description of business",
     "shortName": "Description of business",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies",
     "longName": "060200 - Disclosure - Summary of significant accounting policies",
     "shortName": "Summary of significant accounting policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://transact-tech.com/role/Inventories",
     "longName": "060300 - Disclosure - Inventories",
     "shortName": "Inventories",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://transact-tech.com/role/FixedAssetsNet",
     "longName": "060400 - Disclosure - Fixed assets, net",
     "shortName": "Fixed assets, net",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://transact-tech.com/role/IntangibleAssetsNet",
     "longName": "060500 - Disclosure - Intangible assets, net",
     "shortName": "Intangible assets, net",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://transact-tech.com/role/AccruedLiabilities",
     "longName": "060600 - Disclosure - Accrued liabilities",
     "shortName": "Accrued liabilities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://transact-tech.com/role/SegmentReporting",
     "longName": "060700 - Disclosure - Segment reporting",
     "shortName": "Segment reporting",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://transact-tech.com/role/RetirementSavingsPlan",
     "longName": "060800 - Disclosure - Retirement savings plan",
     "shortName": "Retirement savings plan",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://transact-tech.com/role/Borrowings",
     "longName": "060900 - Disclosure - Borrowings",
     "shortName": "Borrowings",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://transact-tech.com/role/StockIncentivePlans",
     "longName": "061000 - Disclosure - Stock incentive plans",
     "shortName": "Stock incentive plans",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://transact-tech.com/role/IncomeTaxes",
     "longName": "061100 - Disclosure - Income taxes",
     "shortName": "Income taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://transact-tech.com/role/EarningsPerShare",
     "longName": "061200 - Disclosure - Earnings per share",
     "shortName": "Earnings per share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://transact-tech.com/role/StockRepurchaseProgram",
     "longName": "061300 - Disclosure - Stock repurchase program",
     "shortName": "Stock repurchase program",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:TreasuryStockTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:TreasuryStockTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://transact-tech.com/role/GeographicAreaInformation",
     "longName": "061400 - Disclosure - Geographic area information",
     "shortName": "Geographic area information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:GeographicAreaInformationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:GeographicAreaInformationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://transact-tech.com/role/Leases",
     "longName": "061500 - Disclosure - Leases",
     "shortName": "Leases",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited",
     "longName": "061600 - Disclosure - Quarterly results of operations (unaudited)",
     "shortName": "Quarterly results of operations (unaudited)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:QuarterlyFinancialInformationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:QuarterlyFinancialInformationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://transact-tech.com/role/RelatedPartyTransactions",
     "longName": "061700 - Disclosure - Related party transactions",
     "shortName": "Related party transactions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://transact-tech.com/role/SubsequentEvents",
     "longName": "061800 - Disclosure - Subsequent events",
     "shortName": "Subsequent events",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://transact-tech.com/role/InsiderTradingArrangements",
     "longName": "061900 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "c20241001to20241231",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ecd:NonRule10b51ArrAdoptedFlag",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241001to20241231",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ecd:NonRule10b51ArrAdoptedFlag",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure",
     "longName": "062000 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure",
     "shortName": "Cybersecurity Risk Management and Strategy Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "27",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies",
     "longName": "070200 - Disclosure - Summary of significant accounting policies (Policies)",
     "shortName": "Summary of significant accounting policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "28",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables",
     "longName": "080200 - Disclosure - Summary of significant accounting policies (Tables)",
     "shortName": "Summary of significant accounting policies (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "29",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://transact-tech.com/role/InventoriesTables",
     "longName": "080300 - Disclosure - Inventories (Tables)",
     "shortName": "Inventories (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "30",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://transact-tech.com/role/FixedAssetsNetTables",
     "longName": "080400 - Disclosure - Fixed assets, net (Tables)",
     "shortName": "Fixed assets, net (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "31",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://transact-tech.com/role/IntangibleAssetsNetTables",
     "longName": "080500 - Disclosure - Intangible assets, net (Tables)",
     "shortName": "Intangible assets, net (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "32",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://transact-tech.com/role/AccruedLiabilitiesTables",
     "longName": "080600 - Disclosure - Accrued liabilities (Tables)",
     "shortName": "Accrued liabilities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "33",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://transact-tech.com/role/SegmentReportingTables",
     "longName": "080700 - Disclosure - Segment reporting (Tables)",
     "shortName": "Segment reporting (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "34",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://transact-tech.com/role/StockIncentivePlansTables",
     "longName": "081000 - Disclosure - Stock incentive plans (Tables)",
     "shortName": "Stock incentive plans (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "35",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://transact-tech.com/role/IncomeTaxesTables",
     "longName": "081100 - Disclosure - Income taxes (Tables)",
     "shortName": "Income taxes (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "36",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://transact-tech.com/role/EarningsPerShareTables",
     "longName": "081200 - Disclosure - Earnings per share (Tables)",
     "shortName": "Earnings per share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "37",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://transact-tech.com/role/GeographicAreaInformationTables",
     "longName": "081400 - Disclosure - Geographic area information (Tables)",
     "shortName": "Geographic area information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "38",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://transact-tech.com/role/LeasesTables",
     "longName": "081500 - Disclosure - Leases (Tables)",
     "shortName": "Leases (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "39",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables",
     "longName": "081600 - Disclosure - Quarterly results of operations (unaudited) (Tables)",
     "shortName": "Quarterly results of operations (unaudited) (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://transact-tech.com/role/DescriptionOfBusinessDetails",
     "longName": "090100 - Disclosure - Description of business (Details)",
     "shortName": "Description of business (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:NumberOfOperatingSegments",
      "unitRef": "U004",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "tact:NumberOfSoftwareSolutions",
      "unitRef": "U005",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R42": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails",
     "longName": "090202 - Disclosure - Summary of significant accounting policies, Accounts receivable and credit losses (Details)",
     "shortName": "Summary of significant accounting policies, Accounts receivable and credit losses (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "c20231231",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20221231",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R43": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
     "longName": "090204 - Disclosure - Summary of significant accounting policies, Fixed assets (Details)",
     "shortName": "Summary of significant accounting policies, Fixed assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:Depreciation",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:Depreciation",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails",
     "longName": "090206 - Disclosure - Summary of significant accounting policies, Leases (Details)",
     "shortName": "Summary of significant accounting policies, Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "c20241231_RangeAxis_MinimumMember",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231_RangeAxis_MinimumMember",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails",
     "longName": "090208 - Disclosure - Summary of significant accounting policies, Goodwill and intangible assets (Details)",
     "shortName": "Summary of significant accounting policies, Goodwill and intangible assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:GoodwillAndIntangibleAssetImpairment",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:GoodwillAndIntangibleAssetImpairment",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails",
     "longName": "090210 - Disclosure - Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)",
     "shortName": "Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails",
     "longName": "090212 - Disclosure - Summary of significant accounting policies, Revenue recognition - Contract balances (Details)",
     "shortName": "Summary of significant accounting policies, Revenue recognition - Contract balances (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:ContractWithCustomerRevenueRecognized",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:ContractWithCustomerRevenueRecognized",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails",
     "longName": "090214 - Disclosure - Summary of significant accounting policies, Revenue recognition - Remaining performance obligations (Details)",
     "shortName": "Summary of significant accounting policies, Revenue recognition - Remaining performance obligations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails",
     "longName": "090216 - Disclosure - Summary of significant accounting policies, Concentration of credit risk (Details)",
     "shortName": "Summary of significant accounting policies, Concentration of credit risk (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails",
     "longName": "090218 - Disclosure - Summary of significant accounting policies, Engineering, design and product development (Details)",
     "shortName": "Summary of significant accounting policies, Engineering, design and product development (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:ResearchAndDevelopmentExpense",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R51": {
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails",
     "longName": "090220 - Disclosure - Summary of significant accounting policies, Advertising (Details)",
     "shortName": "Summary of significant accounting policies, Advertising (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:AdvertisingExpense",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:AdvertisingExpense",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://transact-tech.com/role/InventoriesDetails",
     "longName": "090300 - Disclosure - Inventories (Details)",
     "shortName": "Inventories (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R53": {
     "role": "http://transact-tech.com/role/FixedAssetsNetDetails",
     "longName": "090400 - Disclosure - Fixed assets, net (Details)",
     "shortName": "Fixed assets, net (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R54": {
     "role": "http://transact-tech.com/role/IntangibleAssetsNetDetails",
     "longName": "090500 - Disclosure - Intangible assets, net (Details)",
     "shortName": "Intangible assets, net (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R55": {
     "role": "http://transact-tech.com/role/AccruedLiabilitiesDetails",
     "longName": "090600 - Disclosure - Accrued liabilities (Details)",
     "shortName": "Accrued liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails",
     "longName": "090702 - Disclosure - Segment reporting, Operating financial results of segment (Details)",
     "shortName": "Segment reporting, Operating financial results of segment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:NumberOfOperatingSegments",
      "unitRef": "U004",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:SegmentReportingOtherItemCompositionDescription",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R57": {
     "role": "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails",
     "longName": "090704 - Disclosure - Segment reporting, Reconciliation of net (loss) income to EBITDA and adjusted EBITDA (Details)",
     "shortName": "Segment reporting, Reconciliation of net (loss) income to EBITDA and adjusted EBITDA (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "c20241001to20241231",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:InterestIncomeExpenseNonoperatingNet",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R58": {
     "role": "http://transact-tech.com/role/RetirementSavingsPlanDetails",
     "longName": "090800 - Disclosure - Retirement savings plan (Details)",
     "shortName": "Retirement savings plan (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://transact-tech.com/role/BorrowingsDetails",
     "longName": "090900 - Disclosure - Borrowings (Details)",
     "shortName": "Borrowings (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember",
      "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember",
      "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R60": {
     "role": "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
     "longName": "091000 - Disclosure - Stock incentive plans, Stock incentive plans (Details)",
     "shortName": "Stock incentive plans, Stock incentive plans (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans",
      "unitRef": "U007",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans",
      "unitRef": "U007",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
     "longName": "091002 - Disclosure - Stock incentive plans, Assumptions used in option valuation calculations (Details)",
     "shortName": "Stock incentive plans, Assumptions used in option valuation calculations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R62": {
     "role": "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails",
     "longName": "091004 - Disclosure - Stock incentive plans, Share-based compensation expense (Details)",
     "shortName": "Stock incentive plans, Share-based compensation expense (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R63": {
     "role": "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails",
     "longName": "091006 - Disclosure - Stock incentive plans, Stock options (Details)",
     "shortName": "Stock incentive plans, Stock options (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R64": {
     "role": "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails",
     "longName": "091100 - Disclosure - Income taxes, Components of income tax expense (Details)",
     "shortName": "Income taxes, Components of income tax expense (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R65": {
     "role": "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails",
     "longName": "091102 - Disclosure - Income taxes, Deferred tax assets and liabilities (Details)",
     "shortName": "Income taxes, Deferred tax assets and liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241231",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R66": {
     "role": "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails",
     "longName": "091104 - Disclosure - Income taxes, Valuation allowance on deferred tax assets (Details)",
     "shortName": "Income taxes, Valuation allowance on deferred tax assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember",
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "us-gaap:SummaryOfValuationAllowanceTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember",
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R67": {
     "role": "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails",
     "longName": "091106 - Disclosure - Income taxes, Statutory to effective tax rate reconciliation (Details)",
     "shortName": "Income taxes, Statutory to effective tax rate reconciliation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R68": {
     "role": "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails",
     "longName": "091108 - Disclosure - Income taxes, Unrecognized tax benefits (Details)",
     "shortName": "Income taxes, Unrecognized tax benefits (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "c20231231",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20221231",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R69": {
     "role": "http://transact-tech.com/role/EarningsPerShareDetails",
     "longName": "091200 - Disclosure - Earnings per share (Details)",
     "shortName": "Earnings per share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "c20241001to20241231",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R70": {
     "role": "http://transact-tech.com/role/StockRepurchaseProgramDetails",
     "longName": "091300 - Disclosure - Stock repurchase program (Details)",
     "shortName": "Stock repurchase program (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:StockRepurchasedDuringPeriodShares",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "us-gaap:StockRepurchasedDuringPeriodShares",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:StockRepurchasedDuringPeriodShares",
      "unitRef": "U002",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "us-gaap:StockRepurchasedDuringPeriodShares",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R71": {
     "role": "http://transact-tech.com/role/GeographicAreaInformationDetails",
     "longName": "091400 - Disclosure - Geographic area information (Details)",
     "shortName": "Geographic area information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "c20241001to20241231",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "U006",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R72": {
     "role": "http://transact-tech.com/role/LeasesDetails",
     "longName": "091500 - Disclosure - Leases (Details)",
     "shortName": "Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true,
      "unique": true
     }
    },
    "R73": {
     "role": "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails",
     "longName": "091600 - Disclosure - Quarterly results of operations (unaudited) (Details)",
     "shortName": "Quarterly results of operations (unaudited) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "c20241001to20241231",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20241001to20241231",
      "name": "us-gaap:GrossProfit",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    },
    "R74": {
     "role": "http://transact-tech.com/role/RelatedPartyTransactionsDetails",
     "longName": "091700 - Disclosure - Related party transactions (Details)",
     "shortName": "Related party transactions (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "c20241001to20241231",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c20240101to20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U001",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ef20039038_10k.htm",
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Summary of significant accounting policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts receivable and credit losses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilities"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued liabilities",
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r62",
      "r67",
      "r975"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts payable",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r811"
     ]
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable [Member]",
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold."
       }
      }
     },
     "auth_ref": [
      "r741"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts receivable, net of allowance for expected credit losses of $474 and $768",
        "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": [
      "r915"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      },
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails",
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued liabilities",
        "totalLabel": "Accrued liabilities",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r62"
     ]
    },
    "us-gaap_AccruedProfessionalFeesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedProfessionalFeesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Professional and consulting",
        "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": [
      "r62"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/FixedAssetsNetDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fixed assets, accumulated depreciation",
        "negatedLabel": "Less: Accumulated depreciation and amortization",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r167",
      "r601"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated other comprehensive loss, net of tax",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r18",
      "r80",
      "r175",
      "r596",
      "r636",
      "r637"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Member]",
        "label": "AOCI Attributable to Parent [Member]",
        "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",
      "r7",
      "r18",
      "r500",
      "r503",
      "r536",
      "r632",
      "r633",
      "r883",
      "r884",
      "r885",
      "r901",
      "r902",
      "r903",
      "r904"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapitalCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional paid-in capital",
        "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": [
      "r72"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r651",
      "r901",
      "r902",
      "r903",
      "r904",
      "r990",
      "r1044"
     ]
    },
    "tact_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Earnings before interest, taxes, depreciation and amortization (EBITDA) after adjustments for special items and non-recurring expenses.",
        "label": "Adjusted Earnings Before Interest, Taxes, Depreciation and Amortization",
        "terseLabel": "Adjusted EBITDA"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation expense",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r50",
      "r51",
      "r402"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to reconcile net (loss) income to net cash provided by operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdvertisingCostsPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Advertising",
        "documentation": "Disclosure of accounting policy for advertising cost."
       }
      }
     },
     "auth_ref": [
      "r142"
     ]
    },
    "us-gaap_AdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdvertisingExpense",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Advertising expense",
        "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line."
       }
      }
     },
     "auth_ref": [
      "r446",
      "r800"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-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": [
      "r435",
      "r444"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance, beginning of period",
        "periodEndLabel": "Balance, end of period",
        "label": "Allowance for expected credit losses",
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r176",
      "r284",
      "r288"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivableRollforward",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowances for expected credit losses [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_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deductions",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance."
       }
      }
     },
     "auth_ref": [
      "r290"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r307",
      "r313",
      "r782"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r239"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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": []
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "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": [
      "r28"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "Assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r120",
      "r132",
      "r171",
      "r200",
      "r244",
      "r253",
      "r271",
      "r275",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r495",
      "r497",
      "r512",
      "r591",
      "r688",
      "r774",
      "r775",
      "r811",
      "r839",
      "r942",
      "r943",
      "r1002"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsAndLiabilitiesLesseeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsAndLiabilitiesLesseeAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases [Abstract]",
        "label": "Assets and Liabilities, Lessee [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "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": [
      "r162",
      "r180",
      "r200",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r495",
      "r497",
      "r512",
      "r811",
      "r942",
      "r943",
      "r1002"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current assets:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total noncurrent assets",
        "label": "Assets, Noncurrent",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold or consumed after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r200",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r495",
      "r497",
      "r512",
      "r942",
      "r943",
      "r1002"
     ]
    },
    "dei_AuditorFirmId": {
     "xbrltype": "nonemptySequenceNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorFirmId",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Firm ID",
        "documentation": "PCAOB issued Audit Firm Identifier"
       }
      }
     },
     "auth_ref": [
      "r843",
      "r844",
      "r856"
     ]
    },
    "dei_AuditorLocation": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorLocation",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location"
       }
      }
     },
     "auth_ref": [
      "r843",
      "r844",
      "r856"
     ]
    },
    "dei_AuditorName": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorName",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name"
       }
      }
     },
     "auth_ref": [
      "r843",
      "r844",
      "r856"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r406",
      "r407",
      "r408",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434"
     ]
    },
    "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of significant accounting policies",
        "label": "Basis of Presentation and Significant Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r94"
     ]
    },
    "country_CA": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "CA",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Canada [Member]",
        "label": "CANADA"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CapitalExpendituresIncurredButNotYetPaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CapitalExpendituresIncurredButNotYetPaid",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-cash capital expenditures",
        "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r26",
      "r27"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r165",
      "r758"
     ]
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value."
       }
      }
     },
     "auth_ref": [
      "r23"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Cash and cash equivalents, end of period",
        "periodStartLabel": "Cash and cash equivalents, beginning of period",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r90",
      "r198"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Increase in cash and cash equivalents",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r90"
     ]
    },
    "us-gaap_CashFlowOperatingActivitiesLesseeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashFlowOperatingActivitiesLesseeAbstract",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows related to operating leases [Abstract]",
        "label": "Cash Flow, Operating Activities, Lessee [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_CasinoAndGamingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "CasinoAndGamingMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sales of thermal ticket printers used in slot machines, video lottery terminals, and other gaming machines that print tickets or receipts instead of issuing coins at casinos and racetracks and other gaming venues worldwide.",
        "label": "Casino and Gaming [Member]",
        "terseLabel": "Casino and Gaming [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_ChiefExecutiveOfficerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ChiefExecutiveOfficerMember",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Former Chief Executive Officer [Member]",
        "label": "Chief Executive Officer [Member]"
       }
      }
     },
     "auth_ref": [
      "r914"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfStockDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ClassOfStockDomain",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Stock [Domain]",
        "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock."
       }
      }
     },
     "auth_ref": [
      "r158",
      "r172",
      "r173",
      "r174",
      "r200",
      "r230",
      "r234",
      "r236",
      "r238",
      "r247",
      "r248",
      "r285",
      "r337",
      "r340",
      "r341",
      "r342",
      "r346",
      "r347",
      "r375",
      "r376",
      "r378",
      "r379",
      "r380",
      "r512",
      "r642",
      "r643",
      "r644",
      "r645",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r662",
      "r676",
      "r698",
      "r720",
      "r735",
      "r736",
      "r737",
      "r738",
      "r739",
      "r874",
      "r891",
      "r905"
     ]
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and contingencies (see Notes 9 and 15)",
        "label": "Commitments and Contingencies",
        "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": [
      "r68",
      "r123",
      "r593",
      "r675"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockMember",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r829",
      "r830",
      "r831",
      "r833",
      "r834",
      "r835",
      "r836",
      "r901",
      "r902",
      "r904",
      "r990",
      "r1042",
      "r1044"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, par value (in dollars per share)",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r71"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, shares authorized (in shares)",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r71",
      "r676"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, shares issued (in shares)",
        "periodEndLabel": "Ending balance (in shares)",
        "periodStartLabel": "Beginning balance (in shares)",
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r71"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, shares outstanding (in shares)",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r71",
      "r676",
      "r694",
      "r1044",
      "r1045"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock, $0.01 par value, 20,000,000 authorized at December 31, 2024 and 2023; 14,068,049 and 14,003,653 shares issued; 10,023,207 and 9,958,811 shares outstanding, at December 31, 2024 and 2023, 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": [
      "r71",
      "r595",
      "r811"
     ]
    },
    "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CompensationAndEmployeeBenefitPlansTextBlock",
     "presentation": [
      "http://transact-tech.com/role/RetirementSavingsPlan"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement savings plan",
        "documentation": "The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans."
       }
      }
     },
     "auth_ref": [
      "r106",
      "r107",
      "r108",
      "r109"
     ]
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement savings plan [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CompensationExpenseExcludingCostOfGoodAndServiceSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CompensationExpenseExcludingCostOfGoodAndServiceSold",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation costs",
        "documentation": "Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit. Other employee benefit expense includes, but is not limited to, service component of net periodic benefit cost for defined benefit plan. Excludes compensation cost in cost of good and service sold."
       }
      }
     },
     "auth_ref": [
      "r774",
      "r887"
     ]
    },
    "us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred income tax components [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComprehensiveIncomeNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Comprehensive (loss) income",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "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": [
      "r19",
      "r182",
      "r184",
      "r189",
      "r586",
      "r606",
      "r607"
     ]
    },
    "tact_ComputerSoftwareAndEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ComputerSoftwareAndEquipmentMember",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Computer software, including but not limited to, acquired and internally developed computer software, and long-lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.",
        "label": "Computer Software and Equipment [Member]",
        "terseLabel": "Computer Software and Equipment [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r33",
      "r53",
      "r54",
      "r282",
      "r741"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r33",
      "r53",
      "r54",
      "r282",
      "r639",
      "r741"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Type [Axis]",
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r33",
      "r53",
      "r54",
      "r282",
      "r741",
      "r877"
     ]
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskCreditRisk",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration of credit risk",
        "documentation": "Disclosure of accounting policy for credit risk."
       }
      }
     },
     "auth_ref": [
      "r58",
      "r145"
     ]
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskLineItems",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk [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": [
      "r741"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "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": [
      "r31",
      "r33",
      "r53",
      "r54",
      "r282"
     ]
    },
    "us-gaap_ConcentrationRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTable",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk [Table]",
        "documentation": "Disclosure of information about concentration risk. Includes, but is not limited to, percentage of concentration risk and benchmark serving as denominator in calculation of percentage of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r31",
      "r33",
      "r34",
      "r53",
      "r119",
      "r741"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Type [Domain]",
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r33",
      "r53",
      "r54",
      "r282",
      "r741"
     ]
    },
    "srt_ConsolidationItemsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidationItemsAxis",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Axis]"
       }
      }
     },
     "auth_ref": [
      "r130",
      "r207",
      "r244",
      "r255",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r275",
      "r276",
      "r277",
      "r337",
      "r338",
      "r339",
      "r340",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r774",
      "r775",
      "r942",
      "r943"
     ]
    },
    "srt_ConsolidationItemsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidationItemsDomain",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Domain]"
       }
      }
     },
     "auth_ref": [
      "r130",
      "r207",
      "r244",
      "r255",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r275",
      "r276",
      "r277",
      "r337",
      "r338",
      "r339",
      "r340",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r774",
      "r775",
      "r942",
      "r943"
     ]
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Principles of consolidation",
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r765"
     ]
    },
    "us-gaap_ConstructionInProgressGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConstructionInProgressGross",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/FixedAssetsNetDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Construction in-process",
        "label": "Construction in Progress, Gross",
        "documentation": "Amount of structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetAndLiabilityAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net contract (liabilities) assets [Abstract]",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Contract (Liabilities) Assets",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "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": [
      "r946"
     ]
    },
    "tact_ContractWithCustomerAssetLiabilityNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ContractWithCustomerAssetLiabilityNet",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right (asset) to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time and the amount of obligation (liability) to transfer good or service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Contract with Customer, Asset (Liability), net",
        "totalLabel": "Net contract (liabilities) assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled receivables, current",
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current",
        "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": [
      "r382",
      "r384",
      "r395"
     ]
    },
    "us-gaap_ContractWithCustomerAssetNetNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetNetNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled receivables, non-current",
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Noncurrent",
        "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 noncurrent."
       }
      }
     },
     "auth_ref": [
      "r382",
      "r384",
      "r395"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": -1.0,
       "order": 4.0
      },
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenue",
        "negatedLabel": "Deferred revenue, 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": [
      "r382",
      "r383",
      "r395"
     ]
    },
    "tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer related to customer prepayments for which consideration has been received or is receivable, classified as current.",
        "label": "Contract with Customer, Liability for Customer Prepayments, Current",
        "negatedLabel": "Customer pre-payments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred revenue, net of current portion",
        "negatedLabel": "Deferred revenue, non-current",
        "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": [
      "r382",
      "r383",
      "r395"
     ]
    },
    "tact_ContractWithCustomerRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ContractWithCustomerRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of revenue recognized related to obligation to transfer good or service to customer for which consideration from customer has been received or is due.",
        "label": "Contract with Customer, Revenue Recognized",
        "terseLabel": "Revenue recognized"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostDirectMaterial": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostDirectMaterial",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost of materials sold",
        "documentation": "Cost of material used for good produced and service rendered."
       }
      }
     },
     "auth_ref": [
      "r886"
     ]
    },
    "us-gaap_CostOfRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfRevenue",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost of sales",
        "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r200",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r512",
      "r774",
      "r942"
     ]
    },
    "srt_CounterpartyNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "CounterpartyNameAxis",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Counterparty Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r205",
      "r206",
      "r352",
      "r377",
      "r543",
      "r549",
      "r590",
      "r762",
      "r764"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentFederalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal",
        "label": "Current Federal Tax Expense (Benefit)",
        "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r879",
      "r894",
      "r988"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentForeignTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Current Foreign Tax Expense (Benefit)",
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r879",
      "r894"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income taxes current",
        "label": "Current Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r479",
      "r894"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current [Abstract]",
        "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "Current State and Local Tax Expense (Benefit)",
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r879",
      "r894",
      "r988"
     ]
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r96",
      "r282"
     ]
    },
    "cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r851",
      "r867"
     ]
    },
    "cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskBoardOfDirectorsOversightTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Board of Directors Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r851",
      "r867"
     ]
    },
    "cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Expertise of Management Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r853",
      "r869"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible [Flag]"
       }
      }
     },
     "auth_ref": [
      "r853",
      "r869"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]"
       }
      }
     },
     "auth_ref": [
      "r855",
      "r871"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r853",
      "r869"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r846",
      "r862"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesIntegratedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesIntegratedFlag",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes Integrated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r847",
      "r863"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesIntegratedTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes Integrated [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r847",
      "r863"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Abstract]"
       }
      }
     },
     "auth_ref": [
      "r845",
      "r861"
     ]
    },
    "cyd_CybersecurityRiskManagementThirdPartyEngagedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementThirdPartyEngagedFlag",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Third Party Engaged [Flag]"
       }
      }
     },
     "auth_ref": [
      "r848",
      "r864"
     ]
    },
    "cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]"
       }
      }
     },
     "auth_ref": [
      "r850",
      "r866"
     ]
    },
    "cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r850",
      "r866"
     ]
    },
    "cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r851",
      "r867"
     ]
    },
    "cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r854",
      "r870"
     ]
    },
    "cyd_CybersecurityRiskRoleOfManagementTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskRoleOfManagementTextBlock",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Role of Management [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r852",
      "r868"
     ]
    },
    "cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag",
     "presentation": [
      "http://transact-tech.com/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]"
       }
      }
     },
     "auth_ref": [
      "r849",
      "r865"
     ]
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Borrowings [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://transact-tech.com/role/Borrowings"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowings",
        "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": [
      "r101",
      "r199",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r335",
      "r336",
      "r348",
      "r354",
      "r355",
      "r356",
      "r357",
      "r358",
      "r359",
      "r364",
      "r371",
      "r372",
      "r374",
      "r521"
     ]
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r61",
      "r62",
      "r121",
      "r122",
      "r207",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r355",
      "r360",
      "r361",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r809",
      "r892",
      "r936",
      "r937",
      "r938",
      "r995",
      "r996"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basis spread on variable rate",
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne": {
     "xbrltype": "percentItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment on or prior to March 31, 2025.",
        "label": "Debt Instrument, Early Payment/Termination Premium for Prepayment, Period One",
        "terseLabel": "Percentage of premium for prepayment loan prior to March 31, 2025"
       }
      }
     },
     "auth_ref": []
    },
    "tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo": {
     "xbrltype": "percentItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment from April 1, 2025 through March 31, 2026.",
        "label": "Debt Instrument, Early Payment/Termination Premium for Prepayment, Period Two",
        "terseLabel": "Percentage of premium for prepayment loan April 1, 2025 through March 31, 2026"
       }
      }
     },
     "auth_ref": []
    },
    "tact_DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter": {
     "xbrltype": "percentItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Early payment/termination premium under the debt agreement, expressed as a percentage, for prepayment after March 31, 2026.",
        "label": "Debt Instrument, Early Payment/Termination Premium for Prepayment, Thereafter",
        "terseLabel": "Percentage of premium for prepayment loan March 31, 2026 thereafter"
       }
      }
     },
     "auth_ref": []
    },
    "tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable": {
     "xbrltype": "percentItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentFinancialCovenantEligibleAccountsReceivable",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of eligible accounts receivable included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.",
        "label": "Debt Instrument, Financial Covenant, Eligible Accounts Receivable",
        "terseLabel": "Percentage of eligible accounts receivable"
       }
      }
     },
     "auth_ref": []
    },
    "tact_DebtInstrumentFinancialCovenantEligibleInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentFinancialCovenantEligibleInventory",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The minimum value of eligible raw material and finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.",
        "label": "Debt Instrument, Financial Covenant, Eligible Inventory",
        "terseLabel": "Eligible inventory"
       }
      }
     },
     "auth_ref": []
    },
    "tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of eligible finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.",
        "label": "Debt Instrument, Financial Covenant, Eligible Inventory, Finished Goods Inventory, Percentage",
        "terseLabel": "Percentage of eligible finished goods inventory"
       }
      }
     },
     "auth_ref": []
    },
    "tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of eligible raw material included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.",
        "label": "Debt Instrument, Financial Covenant, Eligible Inventory, Raw Material, Percentage",
        "terseLabel": "Percentage of eligible raw material"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest rate",
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r64",
      "r350"
     ]
    },
    "us-gaap_DebtInstrumentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentLineItems",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "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": [
      "r207",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r355",
      "r360",
      "r361",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r373",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r809",
      "r892",
      "r995",
      "r996"
     ]
    },
    "tact_DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The minimum principal amount of outstanding borrowings that must be maintained under the credit facility.",
        "label": "Debt Instrument, Minimum outstanding borrowings to be maintained",
        "terseLabel": "Minimum outstanding borrowings to be maintained"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Name [Domain]",
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r207",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r355",
      "r360",
      "r361",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r809",
      "r892",
      "r936",
      "r937",
      "r938",
      "r995",
      "r996"
     ]
    },
    "tact_DebtInstrumentPrincipalAmountOnWhichInterestIsPaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DebtInstrumentPrincipalAmountOnWhichInterestIsPaid",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The principal amount, whether or not such amount of loans is actually outstanding, on which interest is paid under the credit facility.",
        "label": "Debt Instrument, Principal amount on which interest is paid",
        "terseLabel": "Principal amount on which interest is paid"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentTable",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "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": [
      "r15",
      "r44",
      "r45",
      "r57",
      "r102",
      "r103",
      "r207",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r355",
      "r360",
      "r361",
      "r362",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r373",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r809",
      "r892",
      "r995",
      "r996"
     ]
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal",
        "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r894",
      "r987",
      "r988"
     ]
    },
    "us-gaap_DeferredFinanceCostsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredFinanceCostsGross",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred financing costs",
        "label": "Debt Issuance Costs, Gross",
        "documentation": "Amount, before accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs."
       }
      }
     },
     "auth_ref": [
      "r995",
      "r996"
     ]
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign",
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r894",
      "r987"
     ]
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets",
        "label": "Deferred Income Tax Assets, Net",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r453",
      "r454"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income taxes",
        "totalLabel": "Income taxes deferred",
        "label": "Deferred Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r154",
      "r894"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred [Abstract]",
        "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "State",
        "documentation": "Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r894",
      "r987",
      "r988"
     ]
    },
    "us-gaap_DeferredTaxAssetsDeferredIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsDeferredIncome",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue",
        "label": "Deferred Tax Assets, Deferred Income",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross deferred tax assets",
        "label": "Deferred Tax Assets, Gross",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r472"
     ]
    },
    "us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsInProcessResearchAndDevelopment",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Capitalized R&amp;D expenses",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from in-process research and development cost acquired in business combination or from joint venture formation or both."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsInventory",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory reserves",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsLiabilitiesNet",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total net deferred tax assets",
        "label": "Deferred Tax Assets, Net",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r980"
     ]
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net deferred tax assets",
        "label": "Deferred Tax Assets, Net of Valuation Allowance",
        "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r980"
     ]
    },
    "us-gaap_DeferredTaxAssetsNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsNetAbstract",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets [Abstract]",
        "label": "Deferred Tax Assets, Net [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal net operating losses",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsForeign",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign net operating losses",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "State net operating losses",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible state and local operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOther",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Assets",
        "label": "Deferred Tax Assets, Other",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "R&amp;D credit carryforward",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other accrued compensation",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from employee compensation."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued severance",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from severance costs."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock compensation expense",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Warranty reserve",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from warranty reserves."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsValuationAllowance",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Valuation allowance",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized."
       }
      }
     },
     "auth_ref": [
      "r473"
     ]
    },
    "us-gaap_DeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net deferred tax liabilities",
        "label": "Deferred Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r980"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilitiesNetAbstract",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax liabilities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilitiesOther",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Deferred Tax Liabilities, Other",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation and amortization",
        "label": "Deferred Tax Liabilities, Property, Plant and Equipment",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanCostRecognized",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/RetirementSavingsPlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Matching contributions, net of applied forfeitures",
        "label": "Defined Contribution Plan, Cost",
        "documentation": "Amount of cost for defined contribution plan."
       }
      }
     },
     "auth_ref": [
      "r398"
     ]
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercent",
     "presentation": [
      "http://transact-tech.com/role/RetirementSavingsPlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee's contribution percentage for match",
        "documentation": "Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
     "presentation": [
      "http://transact-tech.com/role/RetirementSavingsPlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employer matching contribution percentage",
        "documentation": "Percentage employer matches of the employee's percentage contribution matched."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Depreciation",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation expense",
        "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": [
      "r5",
      "r42"
     ]
    },
    "us-gaap_DepreciationAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DepreciationAndAmortization",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 8.0
      },
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails",
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Depreciation and amortization",
        "label": "Depreciation, Depletion and Amortization, Nonproduction",
        "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r42"
     ]
    },
    "tact_DescriptionOfBusinessAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "DescriptionOfBusinessAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Description of business [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisaggregationOfRevenueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of revenue [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r394",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r394",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r947"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlans"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock incentive plans",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r400",
      "r405",
      "r436",
      "r437",
      "r439",
      "r797"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock incentive plans [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r843",
      "r844",
      "r856"
     ]
    },
    "dei_DocumentFinStmtErrorCorrectionFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFinStmtErrorCorrectionFlag",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Financial Statement Error Correction [Flag]",
        "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction."
       }
      }
     },
     "auth_ref": [
      "r843",
      "r844",
      "r856",
      "r858"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r857"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DomesticCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DomesticCountryMember",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal [Member]",
        "documentation": "Designated federal jurisdiction entitled to levy and collect income tax in country of domicile. Includes, but is not limited to, national jurisdiction for non-U.S. jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r457"
     ]
    },
    "tact_EarningsBeforeInterestTaxesDepreciationAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "EarningsBeforeInterestTaxesDepreciationAndAmortization",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Earnings before interest, taxes, depreciation and amortization (EBITDA).",
        "label": "Earnings Before Interest, Taxes, Depreciation and Amortization",
        "terseLabel": "EBITDA"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net (loss) income per common share:",
        "label": "Earnings per share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic (in dollars per share)",
        "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": [
      "r190",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r228",
      "r230",
      "r236",
      "r237",
      "r238",
      "r243",
      "r491",
      "r494",
      "r506",
      "r507",
      "r587",
      "r608",
      "r767"
     ]
    },
    "us-gaap_EarningsPerShareBasicAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasicAbstract",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net (loss) income per common share [Abstract]",
        "label": "Earnings Per Share, Basic [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasicOtherDisclosuresAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares used in per-share calculation:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Diluted (in dollars per share)",
        "label": "Earnings 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": [
      "r190",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r230",
      "r236",
      "r237",
      "r238",
      "r243",
      "r491",
      "r494",
      "r506",
      "r507",
      "r587",
      "r608",
      "r767"
     ]
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerSharePolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net income (loss) per share",
        "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r29",
      "r240"
     ]
    },
    "us-gaap_EarningsPerShareReconciliationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareReconciliationAbstract",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings per share [Abstract]",
        "label": "Earnings Per Share Reconciliation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings per share",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r227",
      "r239",
      "r241",
      "r242"
     ]
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effect of exchange rate changes on cash and cash equivalents",
        "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r514"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails",
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Effective tax rate",
        "label": "Effective tax rate",
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r802"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Tax Rate Reconciliation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Federal statutory tax rate",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)."
       }
      }
     },
     "auth_ref": [
      "r202",
      "r457",
      "r482",
      "r802"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in valuation allowance",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the valuation allowance for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r461",
      "r802",
      "r895",
      "r976"
     ]
    },
    "tact_EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to limitation on executive compensation.",
        "label": "Effective Income Tax Rate Reconciliation, Executive Compensation Limitation, Percent",
        "terseLabel": "Executive compensation limitation"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationFdiiPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationFdiiPercent",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Foreign-derived intangible income deduction",
        "label": "Effective Income Tax Rate Reconciliation, FDII, Percent",
        "documentation": "Percentage of reported income tax benefit from difference to income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operations, attributable to foreign-derived intangible income (FDII)."
       }
      }
     },
     "auth_ref": [
      "r802",
      "r976",
      "r978"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business meals and entertainment",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to meals and entertainment expense."
       }
      }
     },
     "auth_ref": [
      "r895",
      "r976",
      "r978"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock option cancellations",
        "documentation": "Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r802",
      "r895",
      "r976",
      "r978"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationOtherAdjustments",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments."
       }
      }
     },
     "auth_ref": [
      "r802",
      "r895",
      "r976",
      "r977"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock award excess tax benefit",
        "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent",
        "documentation": "Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r875",
      "r976",
      "r977"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "State income taxes, net of federal income taxes",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r460",
      "r802",
      "r895",
      "r976"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxContingencies",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Uncertain tax positions",
        "label": "Effective Income Tax Rate Reconciliation, Tax Contingency, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to income tax contingencies. Includes, but not limited to, domestic tax contingency, foreign tax contingency, state and local tax contingency, and other contingencies."
       }
      }
     },
     "auth_ref": [
      "r462",
      "r802",
      "r895",
      "r976"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxCreditsResearch",
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "R&amp;D credit",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit."
       }
      }
     },
     "auth_ref": [
      "r802",
      "r895",
      "r976",
      "r978"
     ]
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Salaries and compensation related",
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r62"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average period to recognize compensation cost not yet recognized",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r438"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized compensation cost related to stock options",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r974"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax benefit from share-based compensation expense",
        "label": "Share-Based Payment Arrangement, Expense, Tax Benefit",
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r435"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Excess tax benefit in provision for income taxes",
        "documentation": "Amount of tax benefit from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r151"
     ]
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails",
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Options [Member]",
        "terseLabel": "Option Awards [Member]",
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r841"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r841"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r841"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r872"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Public Float",
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r841"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r841"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r841"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r841"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Voluntary Filers",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Well-known Seasoned Issuer",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A."
       }
      }
     },
     "auth_ref": [
      "r873"
     ]
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock repurchase program [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_EquityAwardsAggregateIntrinsicValueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "EquityAwardsAggregateIntrinsicValueAbstract",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards, Aggregate Intrinsic Value [Abstract]",
        "terseLabel": "Aggregate Intrinsic Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "EquityAwardsWeightedAverageRemainingContractualTermAbstract",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards, Weighted-Average Remaining Contractual Term [Abstract]",
        "terseLabel": "Remaining Term [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Component [Domain]",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r159",
      "r186",
      "r187",
      "r188",
      "r213",
      "r214",
      "r215",
      "r217",
      "r222",
      "r224",
      "r226",
      "r246",
      "r286",
      "r287",
      "r319",
      "r381",
      "r480",
      "r481",
      "r488",
      "r489",
      "r490",
      "r492",
      "r493",
      "r494",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r515",
      "r516",
      "r517",
      "r518",
      "r519",
      "r520",
      "r522",
      "r524",
      "r536",
      "r605",
      "r632",
      "r633",
      "r634",
      "r651",
      "r720"
     ]
    },
    "tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "EquityIncentivePlan2005AndEquityIncentivePlan2014Member",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock incentive plans which provide for awards to executives, key employees, directors and consultants.",
        "label": "Equity Incentive Plan 2005 and Equity Incentive Plan 2014 [Member]",
        "terseLabel": "2005 Equity Incentive Plan and 2014 Equity Incentive Plan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_EquityIncentivePlan2014Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "EquityIncentivePlan2014Member",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock incentive plan which provides for awards to executives, key employees, directors and consultants.",
        "label": "Equity Incentive Plan 2014 [Member]",
        "terseLabel": "2014 Equity Incentive Plan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_EuropeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "EuropeMember",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Europe [Member]"
       }
      }
     },
     "auth_ref": [
      "r1046",
      "r1047",
      "r1048",
      "r1049"
     ]
    },
    "tact_FacilityInLasVegasNevadaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "FacilityInLasVegasNevadaMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Facility located in Las Vegas, Nevada.",
        "label": "Facility in Las Vegas, Nevada [Member]",
        "terseLabel": "Facility in Las Vegas, Nevada [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FederalFundsEffectiveSwapRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FederalFundsEffectiveSwapRateMember",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Funds Rate [Member]",
        "label": "Fed Funds Effective Rate Overnight Index Swap Rate [Member]",
        "documentation": "Fixed rate on U.S. dollar, constant-notional interest rate swap having its variable-rate leg referenced to Federal Funds effective rate with no additional spread over Federal Funds effective rate on that variable-rate leg."
       }
      }
     },
     "auth_ref": [
      "r989"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, accumulated amortization",
        "negatedLabel": "Accumulated amortization",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r169",
      "r294",
      "r312",
      "r782"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "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": [
      "r306",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r314",
      "r315",
      "r553",
      "r554",
      "r754"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gross amount",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r294",
      "r312",
      "r554",
      "r782"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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": [
      "r306",
      "r312",
      "r314",
      "r315",
      "r317",
      "r553",
      "r754",
      "r782"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "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": [
      "r306",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r314",
      "r315",
      "r754"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsNetAbstract",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Identifiable intangible assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_FixedAssetsExcludingConstructionInProcessMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "FixedAssetsExcludingConstructionInProcessMember",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fixed assets excluding construction in-process. Includes tooling, machinery and equipment, furniture and office equipment, computer software and equipment, and leasehold improvements.",
        "label": "Fixed Assets, Excluding Construction in-Process [Member]",
        "terseLabel": "Fixed Assets, Excluding Construction in-Process [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_FoodServiceTechnologyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "FoodServiceTechnologyMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sales of the BOHA! ecosystem, which combines the latest generation terminal, cloud-based software applications and related hardware into a unique solution to automate operations with food production in the back-of-house operations in restaurants and food service operations.",
        "label": "Food Service Technology [Member]",
        "terseLabel": "Food Service Technology [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCurrencyTransactionGainLossUnrealized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignCurrencyTransactionGainLossUnrealized",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Foreign currency transaction losses (gains)",
        "label": "Unrealized Gain (Loss), Foreign Currency Transaction, before Tax",
        "documentation": "Amount, before tax, of unrealized gain (loss) from foreign currency transaction."
       }
      }
     },
     "auth_ref": [
      "r93",
      "r696",
      "r837",
      "r993",
      "r994",
      "r1043"
     ]
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency translation",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy."
       }
      }
     },
     "auth_ref": [
      "r513"
     ]
    },
    "tact_FurnitureAndOfficeEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "FurnitureAndOfficeEquipmentMember",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities and tangible personal property used in an office setting. Examples include, but are not limited to, computers, copiers and fax machine.",
        "label": "Furniture and Office Equipment [Member]",
        "terseLabel": "Furniture and Office Equipment [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "General and administrative",
        "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": [
      "r85",
      "r700"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GeneralAndAdministrativeExpenseMember",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "General and Administrative Expense [Member]",
        "documentation": "Primary financial statement caption encompassing general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r85"
     ]
    },
    "tact_GeographicAreaInformationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "GeographicAreaInformationTextBlock",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for information regarding operations by geographic area.",
        "label": "Geographic Area Information [Text Block]",
        "terseLabel": "Geographic area information"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GeographicAreasRevenuesFromExternalCustomersAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GeographicAreasRevenuesFromExternalCustomersAbstract",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical area information [Abstract]",
        "label": "Geographic Areas, Revenues from External Customers [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GeographicConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GeographicConcentrationRiskMember",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographic Concentration Risk [Member]",
        "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa)."
       }
      }
     },
     "auth_ref": [
      "r32",
      "r741"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill",
        "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": [
      "r168",
      "r295",
      "r585",
      "r775",
      "r781",
      "r803",
      "r811",
      "r923",
      "r924"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetImpairment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetImpairment",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of goodwill and intangible assets",
        "label": "Goodwill and Intangible Asset Impairment",
        "documentation": "Total loss recognized during the period from the impairment of goodwill plus the loss recognized in the period resulting from the impairment of the carrying amount of intangible assets, other than goodwill."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible assets, net [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible assets",
        "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r922",
      "r925"
     ]
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "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": [
      "r81",
      "r83",
      "r131",
      "r200",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r512",
      "r769",
      "r774",
      "r908",
      "r910",
      "r911",
      "r912",
      "r913",
      "r942"
     ]
    },
    "dei_IcfrAuditorAttestationFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "IcfrAuditorAttestationFlag",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "auth_ref": [
      "r843",
      "r844",
      "r856"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "(Loss) income before income taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "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": [
      "r82",
      "r126",
      "r131",
      "r588",
      "r603",
      "r769",
      "r774",
      "r908",
      "r910",
      "r911",
      "r912",
      "r913"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign income before taxes",
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile."
       }
      }
     },
     "auth_ref": [
      "r201",
      "r456"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF OPERATIONS [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Income Location, Balance [Axis]",
        "documentation": "Information by location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r320",
      "r327",
      "r328",
      "r509",
      "r510",
      "r511",
      "r629",
      "r631",
      "r705",
      "r754",
      "r804",
      "r1013"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Income Location, Balance [Domain]",
        "documentation": "Location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r327",
      "r328",
      "r509",
      "r510",
      "r511",
      "r629",
      "r631",
      "r705",
      "r754",
      "r804",
      "r1013"
     ]
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Jurisdiction [Axis]",
        "documentation": "Information by income tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r197",
      "r457",
      "r458",
      "r466",
      "r476",
      "r802",
      "r984"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Jurisdiction [Domain]",
        "documentation": "Income tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r197",
      "r457",
      "r458",
      "r466",
      "r476",
      "r802",
      "r984"
     ]
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income taxes [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income taxes",
        "documentation": "The entire disclosure for income tax."
       }
      }
     },
     "auth_ref": [
      "r202",
      "r449",
      "r457",
      "r463",
      "r464",
      "r465",
      "r470",
      "r475",
      "r483",
      "r485",
      "r486",
      "r487",
      "r647",
      "r802"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      },
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 4.0
      },
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails",
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Income tax expense",
        "totalLabel": "Income tax expense",
        "negatedTerseLabel": "Income tax benefit (expense)",
        "terseLabel": "Income tax expense",
        "label": "Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r138",
      "r155",
      "r225",
      "r226",
      "r244",
      "r261",
      "r275",
      "r455",
      "r457",
      "r484",
      "r609",
      "r802"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of income tax expense [Abstract]",
        "label": "Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income taxes [Abstract]",
        "label": "Income Tax Expense (Benefit), Continuing Operations, by Jurisdiction [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income taxes",
        "label": "Income Tax, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements."
       }
      }
     },
     "auth_ref": [
      "r185",
      "r451",
      "r452",
      "r470",
      "r471",
      "r474",
      "r478",
      "r641"
     ]
    },
    "us-gaap_IncomeTaxesPaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxesPaid",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income taxes paid",
        "documentation": "Amount, before refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r92",
      "r890",
      "r982",
      "r983"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Increase (Decrease) in Accounts Payable",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts receivable",
        "label": "Increase (Decrease) in Accounts Receivable",
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued liabilities and other liabilities",
        "label": "Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities",
        "documentation": "Amount of increase (decrease) in accrued expenses, and obligations classified as other."
       }
      }
     },
     "auth_ref": [
      "r889"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventories",
        "label": "Increase (Decrease) in Inventories",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes in operating assets and liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingLeaseLiability",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase in operating lease liability",
        "label": "Increase (Decrease) in Operating Lease Liability",
        "documentation": "Amount of increase (decrease) in obligation for operating lease."
       }
      }
     },
     "auth_ref": [
      "r878",
      "r889"
     ]
    },
    "tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "IncreaseDecreaseInOperatingLeaseRightOfUseAsset",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in operating lease right-of-use asset.",
        "label": "Increase (Decrease) in Operating Lease Right-of-use Asset",
        "terseLabel": "Increase in right-of-use-asset"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOtherOperatingAssets",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other current and long-term assets",
        "label": "Increase (Decrease) in Other Operating Assets",
        "documentation": "Amount of increase (decrease) in operating assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOtherReceivables",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Employee retention credit receivable",
        "label": "Increase (Decrease) in Other Receivables",
        "documentation": "Amount of increase (decrease) in receivables classified as other."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInPrepaidTaxes",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid income taxes",
        "label": "Increase (Decrease) in Prepaid Taxes",
        "documentation": "Amount of increase (decrease) of consideration paid in advance for income and other taxes that provide economic benefits in future periods."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Stockholders' Equity [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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "calculation": {
      "http://transact-tech.com/role/EarningsPerShareDetails": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Add: Dilutive effect of outstanding equity awards as determined by the treasury stock method (in shares)",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method."
       }
      }
     },
     "auth_ref": [
      "r231",
      "r232",
      "r233",
      "r238",
      "r404"
     ]
    },
    "us-gaap_InformationTechnologyAndDataProcessing": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InformationTechnologyAndDataProcessing",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "IT expenses",
        "documentation": "The amount of expenses incurred in the period for information technology and data processing products and services."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r859"
     ]
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNet"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, net",
        "label": "Intangible Assets Disclosure [Text Block]",
        "documentation": "The entire disclosure for all or part of the information related to intangible assets."
       }
      }
     },
     "auth_ref": [
      "r305",
      "r316",
      "r318",
      "r753",
      "r754"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, net of accumulated amortization of $1,606 and $1,518",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges."
       }
      }
     },
     "auth_ref": [
      "r306",
      "r932",
      "r933"
     ]
    },
    "us-gaap_InterestExpenseNonoperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestExpenseNonoperating",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Interest expense",
        "label": "Interest Expense, Nonoperating",
        "documentation": "Amount of interest expense classified as nonoperating."
       }
      }
     },
     "auth_ref": [
      "r257",
      "r888"
     ]
    },
    "us-gaap_InterestIncomeDomesticDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestIncomeDomesticDeposits",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest income",
        "documentation": "Interest earned on deposits in United States money market accounts and other United States interest earning accounts."
       }
      }
     },
     "auth_ref": [
      "r128"
     ]
    },
    "us-gaap_InterestIncomeExpenseNonoperatingNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestIncomeExpenseNonoperatingNet",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Interest (income) expense, net",
        "label": "Interest Income (Expense), Nonoperating",
        "documentation": "Amount of interest income (expense) classified as nonoperating."
       }
      }
     },
     "auth_ref": [
      "r774",
      "r888",
      "r910"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest paid",
        "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": [
      "r193",
      "r195",
      "r196"
     ]
    },
    "tact_InternationalGameTechnologyPlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "InternationalGameTechnologyPlcMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "International Game Technology PLC, formerly Gtech S.p.A. and Lottomatica S.p.A., is a multinational gaming company that produces slot machines and other gaming technology.",
        "label": "International Game Technology PLC [Member]",
        "terseLabel": "International Gaming Technology [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_InternationalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "InternationalMember",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other countries outside of the United States.",
        "label": "International [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventories [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryDisclosureTextBlock",
     "presentation": [
      "http://transact-tech.com/role/Inventories"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Inventory Disclosure [Text Block]",
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory."
       }
      }
     },
     "auth_ref": [
      "r291"
     ]
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/InventoriesDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/InventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finished goods",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r761"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      },
      "http://transact-tech.com/role/InventoriesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/InventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventories",
        "totalLabel": "Inventories",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r178",
      "r759",
      "r811"
     ]
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Inventory, Policy [Policy Text Block]",
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost."
       }
      }
     },
     "auth_ref": [
      "r139",
      "r164",
      "r177",
      "r291",
      "r292",
      "r293",
      "r551",
      "r766"
     ]
    },
    "us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryRawMaterialsAndSuppliesNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/InventoriesDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/InventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Raw materials and purchased component parts",
        "documentation": "Aggregated amount of unprocessed materials to be used in manufacturing or production process and supplies that will be consumed. This amount is net of valuation reserves and adjustments."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r882"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leasehold Improvements [Member]",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r100",
      "r534"
     ]
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeaseDescriptionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeaseDescriptionLineItems",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Lease, Description [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": [
      "r529",
      "r535"
     ]
    },
    "us-gaap_LesseeLeaseDescriptionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeaseDescriptionTable",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Lease, Description [Table]",
        "documentation": "Disclosure of information about lessee's leases."
       }
      }
     },
     "auth_ref": [
      "r529",
      "r535"
     ]
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r528"
     ]
    },
    "us-gaap_LesseeOperatingLeaseDescriptionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseDescriptionAbstract",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease weighted average remaining lease term and discount rate [Abstract]",
        "label": "Lessee, Operating Lease, Description [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of information related to lessee's operating leases, including weighted average lease term and discount rate.",
        "label": "Lessee, Operating Lease, Lease Term and Discount Rate [Table Text Block]",
        "terseLabel": "Additional Information Related to Leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maturity of Operating Lease Liabilities",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r999"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://transact-tech.com/role/LeasesDetailsCalc2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total undiscounted lease payments",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r533"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r533"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r533"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/LeasesDetailsCalc2": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less imputed interest",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r533"
     ]
    },
    "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseRemainingLeaseTerm",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Remaining lease terms",
        "label": "Lessee, Operating Lease, Remaining Lease Term",
        "documentation": "Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r535",
      "r998"
     ]
    },
    "tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of supplemental information for the statement of cash flows related to operating leases.",
        "label": "Lessee, Operating Lease, Supplemental Disclosure for Cash Flows [Table Text Block]",
        "terseLabel": "Cash Flows for Operating Leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeasesTextBlock",
     "presentation": [
      "http://transact-tech.com/role/Leases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Operating Leases [Text Block]",
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r523"
     ]
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "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": [
      "r15",
      "r61",
      "r62",
      "r63",
      "r66",
      "r67",
      "r68",
      "r69",
      "r200",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r496",
      "r497",
      "r498",
      "r512",
      "r674",
      "r768",
      "r839",
      "r942",
      "r1002",
      "r1003"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and shareholders' 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": [
      "r76",
      "r124",
      "r598",
      "r811",
      "r893",
      "r919",
      "r992"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Shareholders' Equity:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "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": [
      "r63",
      "r163",
      "r200",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r496",
      "r497",
      "r498",
      "r512",
      "r811",
      "r942",
      "r1002",
      "r1003"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total noncurrent liabilities",
        "label": "Liabilities, Noncurrent",
        "documentation": "Amount of obligation due after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r66",
      "r67",
      "r68",
      "r69",
      "r200",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r496",
      "r497",
      "r498",
      "r512",
      "r942",
      "r1002",
      "r1003"
     ]
    },
    "tact_LightWonderGamingIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "LightWonderGamingIncMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Light &amp; Wonder, Inc., formerly Scientific Games Corporation, is an American corporation that provides gaming products and services.",
        "label": "Light &amp; Wonder Gaming, Inc. [Member]",
        "terseLabel": "Light &amp; Wonder Gaming, Inc. [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityAbstract",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowings [Abstract]",
        "label": "Line of Credit Facility [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum borrowing capacity",
        "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": [
      "r60",
      "r65"
     ]
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional borrowing capacity",
        "label": "Line of Credit Facility, Remaining Borrowing Capacity",
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding)."
       }
      }
     },
     "auth_ref": [
      "r60",
      "r65",
      "r336"
     ]
    },
    "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percentage fee on unused borrowings",
        "label": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage",
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LinesOfCreditCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LinesOfCreditCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revolving loan payable",
        "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": [
      "r61",
      "r121"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MachineryAndEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MachineryAndEquipmentMember",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tooling, Machinery and Equipment [Member]",
        "label": "Machinery and Equipment [Member]",
        "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Axis]"
       }
      }
     },
     "auth_ref": [
      "r282",
      "r791",
      "r821",
      "r826",
      "r947",
      "r1012",
      "r1014",
      "r1015",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "us-gaap_MarketingAndAdvertisingExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MarketingAndAdvertisingExpenseAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Advertising [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MarketingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MarketingExpense",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Marketing expenses",
        "documentation": "Expenditures for planning and executing the conception, pricing, promotion, and distribution of ideas, goods, and services. Costs of public relations and corporate promotions are typically considered to be marketing costs."
       }
      }
     },
     "auth_ref": [
      "r85"
     ]
    },
    "us-gaap_MaterialReconcilingItemsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MaterialReconcilingItemsMember",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reconciling Item [Member]",
        "label": "Segment Reporting, Reconciling Item, Excluding Corporate Nonsegment [Member]",
        "documentation": "Items used in reconciling reportable segments' amounts to consolidated amount. Excludes corporate-level activity."
       }
      }
     },
     "auth_ref": [
      "r270",
      "r273",
      "r276",
      "r774",
      "r775"
     ]
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MaximumMember",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]"
       }
      }
     },
     "auth_ref": [
      "r331",
      "r332",
      "r333",
      "r334",
      "r399",
      "r445",
      "r508",
      "r550",
      "r628",
      "r630",
      "r638",
      "r666",
      "r667",
      "r726",
      "r728",
      "r730",
      "r731",
      "r733",
      "r751",
      "r752",
      "r779",
      "r788",
      "r796",
      "r805",
      "r806",
      "r807",
      "r808",
      "r822",
      "r944",
      "r1004",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009"
     ]
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MinimumMember",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]"
       }
      }
     },
     "auth_ref": [
      "r331",
      "r332",
      "r333",
      "r334",
      "r399",
      "r445",
      "r508",
      "r550",
      "r628",
      "r630",
      "r638",
      "r666",
      "r667",
      "r726",
      "r728",
      "r730",
      "r731",
      "r733",
      "r751",
      "r752",
      "r779",
      "r788",
      "r796",
      "r805",
      "r806",
      "r807",
      "r822",
      "r944",
      "r1004",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009"
     ]
    },
    "us-gaap_MovementInValuationAllowancesAndReservesRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MovementInValuationAllowancesAndReservesRollForward",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Valuation allowance [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": []
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Domain]"
       }
      }
     },
     "auth_ref": [
      "r282",
      "r791",
      "r821",
      "r826",
      "r947",
      "r1012",
      "r1014",
      "r1015",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "us-gaap_NatureOfOperations": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NatureOfOperations",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusiness"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Description of business",
        "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward."
       }
      }
     },
     "auth_ref": [
      "r141",
      "r156"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) financing activities",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r194"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from financing activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in investing activities",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r194"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from investing activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by operating activities",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities."
       }
      }
     },
     "auth_ref": [
      "r90",
      "r91",
      "r93"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 1.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      },
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails",
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net (loss) income",
        "totalLabel": "Net (loss) income",
        "terseLabel": "Net (loss) income",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r84",
      "r93",
      "r127",
      "r161",
      "r181",
      "r183",
      "r188",
      "r200",
      "r216",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r225",
      "r226",
      "r235",
      "r285",
      "r337",
      "r338",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r346",
      "r347",
      "r491",
      "r494",
      "r507",
      "r512",
      "r604",
      "r697",
      "r718",
      "r719",
      "r837",
      "r942"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recently issued accounting pronouncements",
        "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_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://transact-tech.com/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted",
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r860"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://transact-tech.com/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated",
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r860"
     ]
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Interest and other income (expense)",
        "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": [
      "r87"
     ]
    },
    "us-gaap_NonoperatingIncomeExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NonoperatingIncomeExpenseAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest and other income (expense):"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfOperatingSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NumberOfOperatingSegments",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of operating segments",
        "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues."
       }
      }
     },
     "auth_ref": [
      "r775",
      "r909"
     ]
    },
    "tact_NumberOfSoftwareSolutions": {
     "xbrltype": "integerItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "NumberOfSoftwareSolutions",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of software solutions from the after-market side of the business.",
        "label": "Number of software solutions",
        "terseLabel": "Number of software solutions from the after-market side of the business"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OccupancyNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OccupancyNet",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Occupancy costs",
        "documentation": "Amount of net occupancy expense that may include items, such as depreciation of facilities and equipment, lease expenses, property taxes and property and casualty insurance expense."
       }
      }
     },
     "auth_ref": [
      "r86",
      "r125",
      "r137"
     ]
    },
    "us-gaap_OperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingExpenses",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Operating expenses",
        "label": "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": []
    },
    "us-gaap_OperatingExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingExpensesAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating expenses:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Operating (loss) income",
        "label": "Operating Income (Loss)",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r131",
      "r769",
      "r908",
      "r910",
      "r911",
      "r912",
      "r913"
     ]
    },
    "us-gaap_OperatingLeaseExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseExpense",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease expense",
        "label": "Operating Lease, Expense",
        "documentation": "Amount of operating lease expense. Excludes sublease income."
       }
      }
     },
     "auth_ref": [
      "r997"
     ]
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maturity of operating lease liabilities [Abstract]",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/LeasesDetailsCalc2": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total lease liabilities",
        "label": "Operating Lease, Liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r526"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease liabilities",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r526"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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": [
      "r526"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating cash outflows from leases",
        "label": "Operating Lease, Payments",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r527",
      "r530"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right-of-use assets, net",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r525"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average discount rate",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r532",
      "r810"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average remaining lease term (in years)",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r531",
      "r810"
     ]
    },
    "us-gaap_OperatingLossCarryforwardsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLossCarryforwardsLineItems",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Loss Carryforwards [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": [
      "r477"
     ]
    },
    "tact_OperatingLossCarryforwardsNotSubjectToExpiration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "OperatingLossCarryforwardsNotSubjectToExpiration",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are not subject to expiration dates.",
        "label": "Operating Loss Carryforwards, Not Subject to Expiration",
        "terseLabel": "Net operating loss carryforwards not subject to expiration"
       }
      }
     },
     "auth_ref": []
    },
    "tact_OperatingLossCarryforwardsSubjectToExpiration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "OperatingLossCarryforwardsSubjectToExpiration",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.",
        "label": "Operating Loss Carryforwards, Subject to Expiration",
        "terseLabel": "Net operating loss carryforwards subject to expiration"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLossCarryforwardsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLossCarryforwardsTable",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Loss Carryforwards [Table]",
        "documentation": "Disclosure of information about operating loss carryforward. Includes, but is not limited to, tax authority, amount and expiration date of operating loss carryforward, and likelihood of utilization."
       }
      }
     },
     "auth_ref": [
      "r477"
     ]
    },
    "us-gaap_OperatingSegmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingSegmentsMember",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Segment [Member]",
        "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r276",
      "r774",
      "r775"
     ]
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other current assets",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r179",
      "r811"
     ]
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other assets",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r170"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLossIncome"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Foreign currency translation adjustment, net of tax",
        "terseLabel": "Foreign currency translation adjustment, net of tax",
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r605"
     ]
    },
    "us-gaap_OtherLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other",
        "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r811"
     ]
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherLiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other liabilities",
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 3.0
      },
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other, net",
        "terseLabel": "Other (expense) income",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r88"
     ]
    },
    "tact_PacificRimMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "PacificRimMember",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Geographic area surrounding the edges of the Pacific Ocean. The Pacific Rim covers the western shores of North America and South America, in addition to Australia, eastern Asia and the islands of the Pacific.",
        "label": "Pacific Rim [Member]",
        "terseLabel": "Pacific Rim [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PatentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PatentsMember",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Patents [Member]",
        "documentation": "Exclusive legal right granted by the government to the owner of the patent to exploit an invention or a process for a period of time specified by law."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r926",
      "r927",
      "r928",
      "r929",
      "r930",
      "r932",
      "r934",
      "r935"
     ]
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PayablesAndAccrualsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued liabilities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsOfLoanCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsOfLoanCosts",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Payment of bank financing costs",
        "label": "Payments of Loan Costs",
        "documentation": "The cash outflow for loan origination associated cost which is usually collected through escrow."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Withholding taxes paid on stock issuance",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r192"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Capital expenditures",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r89"
     ]
    },
    "us-gaap_PerformanceSharesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PerformanceSharesMember",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance Stock Awards [Member]",
        "label": "Performance Shares [Member]",
        "documentation": "Share-based payment arrangement awarded for meeting performance target."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r957",
      "r958",
      "r959",
      "r960",
      "r961",
      "r962",
      "r963",
      "r964",
      "r965",
      "r966",
      "r967",
      "r968",
      "r969",
      "r970",
      "r971",
      "r972",
      "r973"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r957",
      "r958",
      "r959",
      "r960",
      "r961",
      "r962",
      "r963",
      "r964",
      "r965",
      "r966",
      "r967",
      "r968",
      "r969",
      "r970",
      "r971",
      "r972",
      "r973"
     ]
    },
    "tact_PosAutomationAndBankingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "PosAutomationAndBankingMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sales of thermal printers used primarily by restaurants (including fine dining, casual dining, quick serve and hospitality establishments) located either at the checkout counter or within self-service kiosks to print receipts for consumers or print on linerless labels.",
        "label": "POS Automation and Banking [Member]",
        "terseLabel": "POS Automation [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred stock par value (in dollars per share)",
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer."
       }
      }
     },
     "auth_ref": [
      "r70",
      "r375"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred stock, shares authorized (in shares)",
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r70",
      "r676"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred stock, shares issued (in shares)",
        "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": [
      "r70",
      "r375"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred stock, shares outstanding (in shares)",
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased."
       }
      }
     },
     "auth_ref": [
      "r70",
      "r676",
      "r694",
      "r1044",
      "r1045"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock",
        "label": "Preferred Stock, Value, Issued",
        "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": [
      "r70",
      "r594",
      "r811"
     ]
    },
    "us-gaap_PrepaidTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrepaidTaxes",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid income taxes",
        "documentation": "Amount of asset related to consideration paid in advance for income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r760",
      "r780",
      "r921"
     ]
    },
    "us-gaap_PrimeRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrimeRateMember",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prime Rate [Member]",
        "documentation": "Interest rate charged by financial institutions to their most creditworthy borrowers."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromLinesOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromLinesOfCredit",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from bank borrowings",
        "label": "Proceeds from Lines of Credit",
        "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": [
      "r20",
      "r892"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash received 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/2024",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Axis]"
       }
      }
     },
     "auth_ref": [
      "r278",
      "r552",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r756",
      "r789",
      "r820",
      "r822",
      "r823",
      "r827",
      "r828",
      "r940",
      "r941",
      "r947",
      "r1012",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Domain]"
       }
      }
     },
     "auth_ref": [
      "r278",
      "r552",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r756",
      "r789",
      "r820",
      "r822",
      "r823",
      "r827",
      "r828",
      "r940",
      "r941",
      "r947",
      "r1012",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "us-gaap_ProfessionalAndContractServicesExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProfessionalAndContractServicesExpense",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Professional services",
        "documentation": "Professional and contract service expense includes cost reimbursements for support services related to contracted projects, outsourced management, technical and staff support."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fixed assets, net [Abstract]",
        "terseLabel": "Fixed assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Axis]",
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r534"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNet"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fixed assets, net",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r99",
      "r146",
      "r152",
      "r153"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/FixedAssetsNetDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fixed assets",
        "label": "Property, Plant and Equipment, Gross",
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r100",
      "r166",
      "r602"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [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": [
      "r534"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://transact-tech.com/role/FixedAssetsNetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fixed assets, net of accumulated depreciation of $19,468 and $18,646",
        "verboseLabel": "Fixed assets, net",
        "totalLabel": "Fixed assets, net",
        "label": "Property, Plant and Equipment, Net",
        "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": [
      "r6",
      "r534",
      "r589",
      "r602",
      "r811"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentNetByTypeAbstract",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fixed assets [Abstract]",
        "label": "Property, Plant and Equipment, Net, by Type [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fixed assets",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r146",
      "r152",
      "r600"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Fixed Assets, Net",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Domain]",
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software."
       }
      }
     },
     "auth_ref": [
      "r100",
      "r534"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Estimated useful life",
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAccountsReceivableAndCreditLossesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additions charged to costs and expenses",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r191",
      "r289"
     ]
    },
    "us-gaap_QuarterlyFinancialInformationDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "QuarterlyFinancialInformationDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Quarterly results of operations (unaudited) [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_QuarterlyFinancialInformationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "QuarterlyFinancialInformationTextBlock",
     "presentation": [
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Quarterly results of operations (unaudited)",
        "documentation": "The entire disclosure for quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the information."
       }
      }
     },
     "auth_ref": [
      "r95",
      "r245"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeAxis",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r331",
      "r332",
      "r333",
      "r334",
      "r396",
      "r399",
      "r431",
      "r432",
      "r433",
      "r445",
      "r508",
      "r547",
      "r548",
      "r550",
      "r628",
      "r630",
      "r638",
      "r666",
      "r667",
      "r726",
      "r728",
      "r730",
      "r731",
      "r733",
      "r751",
      "r752",
      "r779",
      "r788",
      "r796",
      "r805",
      "r806",
      "r807",
      "r808",
      "r822",
      "r831",
      "r939",
      "r944",
      "r991",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeMember",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "auth_ref": [
      "r331",
      "r332",
      "r333",
      "r334",
      "r396",
      "r399",
      "r431",
      "r432",
      "r433",
      "r445",
      "r508",
      "r547",
      "r548",
      "r550",
      "r628",
      "r630",
      "r638",
      "r666",
      "r667",
      "r726",
      "r728",
      "r730",
      "r731",
      "r733",
      "r751",
      "r752",
      "r779",
      "r788",
      "r796",
      "r805",
      "r806",
      "r807",
      "r808",
      "r822",
      "r831",
      "r939",
      "r944",
      "r991",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1009"
     ]
    },
    "tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaAbstract",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reconciliation of Net Income (Loss) to EBITDA and Adjusted EBITDA [Abstract]",
        "terseLabel": "Reconciliation of Net (Loss) Income to EBITDA and Adjusted EBITDA [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the reconciliation of net income (loss) to earnings before interest, taxes, depreciation and amortization (EBITDA) and adjusted EBITDA.",
        "label": "Reconciliation of Net Income (Loss) to EBITDA and Adjusted EBITDA [Table Text Block]",
        "terseLabel": "Reconciliation of Net (Loss) Income to EBITDA and Adjusted EBITDA"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unrecognized tax benefits [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_RelatedPartyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyDomain",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related and Nonrelated Parties [Domain]",
        "documentation": "Related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest."
       }
      }
     },
     "auth_ref": [
      "r283",
      "r397",
      "r540",
      "r541",
      "r592",
      "r599",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r693",
      "r695",
      "r725"
     ]
    },
    "us-gaap_RelatedPartyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyMember",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party [Member]",
        "documentation": "Party related to reporting entity. Includes, but is not limited to, affiliate, entity for which investment is accounted for by equity method, trust for benefit of employees, and principal owner, management, and members of immediate family."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r204",
      "r540",
      "r541",
      "r542",
      "r543",
      "r592",
      "r599",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r693",
      "r695",
      "r725"
     ]
    },
    "tact_RelatedPartyTransactionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "RelatedPartyTransactionAbstract",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party Transaction [Abstract]",
        "terseLabel": "Related Party Transaction [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionLineItems",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r283",
      "r701",
      "r702",
      "r705"
     ]
    },
    "us-gaap_RelatedPartyTransactionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Related party transactions [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related and Nonrelated Parties [Axis]",
        "documentation": "Information by related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest."
       }
      }
     },
     "auth_ref": [
      "r283",
      "r397",
      "r540",
      "r541",
      "r592",
      "r599",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r693",
      "r695",
      "r725",
      "r1001"
     ]
    },
    "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionsDisclosureTextBlock",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related party transactions",
        "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates."
       }
      }
     },
     "auth_ref": [
      "r537",
      "r538",
      "r539",
      "r541",
      "r544",
      "r648",
      "r649",
      "r650",
      "r703",
      "r704",
      "r705",
      "r723",
      "r724"
     ]
    },
    "srt_ReportableGeographicalComponentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ReportableGeographicalComponentsMember",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reportable Geographical Components [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_RepurchaseAgreementCounterpartyNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RepurchaseAgreementCounterpartyNameDomain",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Counterparty Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r205",
      "r206",
      "r352",
      "r377",
      "r543",
      "r549",
      "r590",
      "r763",
      "r764"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Engineering, design and product development",
        "terseLabel": "Research and development expense",
        "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": [
      "r448",
      "r754",
      "r774",
      "r1010"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpenseAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Engineering, design and product development [Abstract]",
        "label": "Research and Development Expense [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpensePolicy",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Engineering, design and product development",
        "label": "Research and Development Expense, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process."
       }
      }
     },
     "auth_ref": [
      "r447"
     ]
    },
    "us-gaap_ResearchMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchMember",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "R&amp;D Credit [Member]",
        "documentation": "Research tax credit carryforwards arising from certain qualifying expenditures incurred to develop new products and processes."
       }
      }
     },
     "auth_ref": [
      "r984"
     ]
    },
    "us-gaap_RestrictedStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedStockMember",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Awards [Member]",
        "label": "Restricted Stock [Member]",
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met."
       }
      }
     },
     "auth_ref": [
      "r28"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted Share Units [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": []
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained earnings",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r73",
      "r104",
      "r597",
      "r635",
      "r637",
      "r646",
      "r677",
      "r811"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r159",
      "r213",
      "r214",
      "r215",
      "r217",
      "r222",
      "r224",
      "r226",
      "r286",
      "r287",
      "r319",
      "r480",
      "r481",
      "r488",
      "r489",
      "r490",
      "r492",
      "r493",
      "r494",
      "r499",
      "r501",
      "r502",
      "r504",
      "r505",
      "r522",
      "r524",
      "r632",
      "r634",
      "r651",
      "r1044"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails",
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails",
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net sales",
        "terseLabel": "Sales revenue",
        "verboseLabel": "Revenues",
        "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": [
      "r129",
      "r130",
      "r244",
      "r254",
      "r255",
      "r269",
      "r275",
      "r278",
      "r280",
      "r282",
      "r393",
      "r394",
      "r552"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue recognition",
        "documentation": "Disclosure of accounting policy for revenue from contract with customer."
       }
      }
     },
     "auth_ref": [
      "r157",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r755"
     ]
    },
    "us-gaap_RevenuePerformanceObligationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenuePerformanceObligationAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Remaining performance obligations [Abstract]",
        "label": "Revenue, Performance Obligation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Remaining performance obligations",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r149"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected timing of satisfaction, 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": [
      "r150"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r150"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "tact_RevolvingCreditFacilitySienaLendingGroupLlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "RevolvingCreditFacilitySienaLendingGroupLlcMember",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Arrangement with Siena Lending Group LLC that provides a revolving credit line, subject to a borrowing base.",
        "label": "Revolving Credit Facility, Siena Lending Group Llc [Member]",
        "terseLabel": "Sienna Credit Facility [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RisksAndUncertaintiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RisksAndUncertaintiesAbstract",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration of credit risk [Abstract]",
        "label": "Risks and Uncertainties [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://transact-tech.com/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Adopted",
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r860"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://transact-tech.com/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Terminated",
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r860"
     ]
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales [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": [
      "r282",
      "r876"
     ]
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued Liabilities",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "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": [
      "r28"
     ]
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Income Tax Expense",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years."
       }
      }
     },
     "auth_ref": [
      "r986"
     ]
    },
    "us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for Expected Credit Losses",
        "label": "Financing Receivable, Current, Allowance for Credit Loss [Table Text Block]",
        "documentation": "Tabular disclosure of allowance for credit loss of financing receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r920"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets and Liabilities",
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r980"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings 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": [
      "r906"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statutory to Effective Tax Rate Reconciliation",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r459",
      "r802",
      "r976"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r49"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "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": [
      "r306",
      "r312",
      "r314",
      "r315",
      "r317",
      "r553",
      "r754",
      "r782"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Identifiable Intangible Assets",
        "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": [
      "r782",
      "r931"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/InventoriesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r77",
      "r78",
      "r79"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Table]",
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r534"
     ]
    },
    "us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfQuarterlyFinancialInformationTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Quarterly Results of Operations",
        "label": "Quarterly Financial Information [Table Text Block]",
        "documentation": "Tabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data."
       }
      }
     },
     "auth_ref": [
      "r140"
     ]
    },
    "us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRelatedPartyTransactionsByRelatedPartyTable",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party Transaction [Table]",
        "documentation": "Disclosure of information about related party transaction."
       }
      }
     },
     "auth_ref": [
      "r55",
      "r56",
      "r701",
      "r702",
      "r705"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Sales and Fixed Assets by Geographic Area",
        "documentation": "Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r81"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "documentation": "Disclosure of information about revenue from external customer and long-lived asset by geographical area. Long-lived asset excludes financial instrument, customer relationship with financial institution, mortgage and other servicing right, deferred policy acquisition cost, and deferred tax asset."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r81"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails",
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Segment Reporting Information, by Segment [Table]",
        "documentation": "Disclosure of information about profit (loss) and total assets by reportable segment."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r39",
      "r40"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Financial Results of Segment",
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r39",
      "r40"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r401",
      "r403",
      "r406",
      "r407",
      "r408",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Option Activity",
        "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",
      "r110"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assumptions Used in Option Valuation Calculations",
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions."
       }
      }
     },
     "auth_ref": [
      "r117"
     ]
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits",
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]",
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r467",
      "r801"
     ]
    },
    "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration of Credit Risk",
        "label": "Schedules of Concentration of Risk, by Risk Factor [Table Text Block]",
        "documentation": "Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r31",
      "r33",
      "r34",
      "r53",
      "r119"
     ]
    },
    "us-gaap_SecuredDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SecuredDebt",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance outstanding",
        "label": "Secured Debt",
        "documentation": "Carrying value as of the balance sheet date, including the current and noncurrent portions, of collateralized debt obligations (with maturities initially due after one year or beyond the operating cycle, if longer). Such obligations include mortgage loans, chattel loans, and any other borrowings secured by assets of the borrower."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r122",
      "r1011"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r840"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r842"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentDomain",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segments [Domain]",
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r129",
      "r130",
      "r131",
      "r132",
      "r244",
      "r250",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r275",
      "r276",
      "r277",
      "r282",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r317",
      "r329",
      "r330",
      "r610",
      "r611",
      "r612",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r771",
      "r774",
      "r775",
      "r781",
      "r825",
      "r1012",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "srt_SegmentGeographicalDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "SegmentGeographicalDomain",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Domain]"
       }
      }
     },
     "auth_ref": [
      "r280",
      "r281",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r663",
      "r664",
      "r665",
      "r727",
      "r729",
      "r732",
      "r734",
      "r740",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r757",
      "r790",
      "r812",
      "r813",
      "r814",
      "r815",
      "r816",
      "r817",
      "r818",
      "r819",
      "r824",
      "r831",
      "r947",
      "r1012",
      "r1014",
      "r1015",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SegmentReporting"
     ],
     "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": [
      "r132",
      "r244",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r265",
      "r267",
      "r268",
      "r273",
      "r274",
      "r275",
      "r276",
      "r277",
      "r278",
      "r279",
      "r282",
      "r770",
      "r772",
      "r773",
      "r774",
      "r776",
      "r777",
      "r778"
     ]
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingInformationLineItems",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails",
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting Information [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_SegmentReportingInformationProfitLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingInformationProfitLossAbstract",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting [Abstract]",
        "label": "Segment Reporting Information, Profit (Loss) [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingOtherItemAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingOtherItemAmount",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other segment expenses",
        "documentation": "Amount of other expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (loss)."
       }
      }
     },
     "auth_ref": [
      "r244",
      "r267",
      "r268",
      "r275",
      "r774"
     ]
    },
    "us-gaap_SegmentReportingOtherItemCompositionDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingOtherItemCompositionDescription",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment reporting, other segment item, composition, description",
        "documentation": "Description of composition of other segment item not separately disclosed."
       }
      }
     },
     "auth_ref": [
      "r244",
      "r267",
      "r268",
      "r275",
      "r774"
     ]
    },
    "us-gaap_SegmentsGeographicalAreasAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentsGeographicalAreasAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographic area information [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingAndMarketingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingAndMarketingExpense",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling and marketing",
        "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SeriesAPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SeriesAPreferredStockMember",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Series A Preferred Stock [Member]",
        "documentation": "Series A preferred stock."
       }
      }
     },
     "auth_ref": [
      "r880",
      "r881",
      "r945"
     ]
    },
    "us-gaap_SeveranceCosts1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SeveranceCosts1",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails",
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Severance expense",
        "documentation": "Amount of expenses for special or contractual termination benefits provided to current employees involuntarily terminated under a benefit arrangement associated exit or disposal activities pursuant to an authorized plan. Excludes expenses related to one-time termination benefits, a discontinued operation or an asset retirement obligation."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedArrangementsToObtainGoodsAndServicesAbstract",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock incentive plans [Abstract]",
        "label": "Share-Based Payment Arrangement, Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based compensation expense",
        "terseLabel": "Share-based compensation",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "us-gaap_ShareBasedCompensationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationAbstract",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based compensation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting period",
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition."
       }
      }
     },
     "auth_ref": [
      "r797"
     ]
    },
    "tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were exercised during the period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Exercises in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Exercised (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans for which the right to exercise has lapsed under the terms of the plan agreements.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Expirations, Weighted Average Grant Date Fair Value",
        "terseLabel": "Expired (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited (in dollars per share)",
        "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": [
      "r423"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r421"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Outstanding, beginning of period (in dollars per share)",
        "periodEndLabel": "Outstanding, end of period (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r418",
      "r419"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant Stock Price [Abstract]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted stock units vested and expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Outstanding, Weighted Average Remaining Contractual Terms",
        "documentation": "Weighted average remaining contractual term for equity-based awards excluding options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r116"
     ]
    },
    "tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant": {
     "xbrltype": "percentItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exercise price of awards granted under the plans as a percentage of the fair market value of the Company's common stock at the date of grant.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Exercise Price as Percentage of Fair Market Value of Common Stock at Date of Grant",
        "terseLabel": "Exercise price as a percentage of fair market value of common stock at date of grant"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assumptions used in valuation model [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividend yield",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term."
       }
      }
     },
     "auth_ref": [
      "r432"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected volatility",
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period."
       }
      }
     },
     "auth_ref": [
      "r431"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Risk-free interest rate",
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares."
       }
      }
     },
     "auth_ref": [
      "r433"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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": [
      "r401",
      "r403",
      "r406",
      "r407",
      "r408",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Exercised (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised",
        "documentation": "Number of non-option equity instruments exercised by participants."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expired (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Expirations",
        "documentation": "Number of shares under non-option equity instrument agreements for which rights to exercise lapsed."
       }
      }
     },
     "auth_ref": [
      "r114"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Forfeited (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Forfeitures",
        "documentation": "Number of shares under non-option equity instrument agreements that were cancelled as a result of occurrence of a terminating event."
       }
      }
     },
     "auth_ref": [
      "r113"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Granted",
        "documentation": "Net number of non-option equity instruments granted to participants."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Outstanding, beginning of period (in shares)",
        "periodEndLabel": "Outstanding, end of period (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number",
        "documentation": "Number of equity instruments other than options outstanding, including both vested and non-vested instruments."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r112"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Units [Roll Forward]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of shares authorized (in shares)",
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r799"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of shares available for grant (in shares)",
        "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": [
      "r48"
     ]
    },
    "tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans": {
     "xbrltype": "integerItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of stock incentive plans.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of stock incentive plans",
        "terseLabel": "Number of stock incentive plans"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options exercisable, end of period (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "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": [
      "r412"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Options exercisable, end of period (in dollars per share)",
        "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": [
      "r412"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intrinsic value of stock options exercised",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares."
       }
      }
     },
     "auth_ref": [
      "r425"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Expired (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period",
        "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements."
       }
      }
     },
     "auth_ref": [
      "r417"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Forfeited (in shares)",
        "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": [
      "r416"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in shares)",
        "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": [
      "r414"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Outstanding, end of period (in shares)",
        "periodStartLabel": "Outstanding, beginning of period (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r410",
      "r411"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Shares [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/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Outstanding, end of period (in dollars per share)",
        "periodStartLabel": "Outstanding, beginning of period (in dollars per share)",
        "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": [
      "r410",
      "r411"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Options vested or expected to vest (in dollars per share)",
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest exercisable or convertible options. 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": [
      "r427"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested and expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r426"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Awards Vested and Expected to Vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable [Table Text Block]",
        "documentation": "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest. 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": [
      "r12"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number",
        "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": [
      "r426"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Award [Domain]",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r406",
      "r407",
      "r408",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercised (in dollars per share)",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r415"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expired (in dollars per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired."
       }
      }
     },
     "auth_ref": [
      "r417"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forfeited (in dollars per share)",
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated."
       }
      }
     },
     "auth_ref": [
      "r416"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Granted (in dollars per share)",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r414"
     ]
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based payments",
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost."
       }
      }
     },
     "auth_ref": [
      "r400",
      "r409",
      "r428",
      "r429",
      "r430",
      "r431",
      "r434",
      "r440",
      "r441",
      "r442",
      "r443"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted stock units vested and expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested",
        "documentation": "Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Term of award",
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r798"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected option term",
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r430"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Options exercisable, end of period",
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable."
       }
      }
     },
     "auth_ref": [
      "r48"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options exercisable, end of period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r48"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average fair value of grants (in dollars per share)",
        "documentation": "Weighted average grant-date fair value of non-vested options outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Options vested and expected to vest",
        "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": [
      "r426"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value of all awards vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested in Period, Fair Value",
        "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock."
       }
      }
     },
     "auth_ref": [
      "r425"
     ]
    },
    "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Relinquishment of stock awards and deferred stock units to pay withholding taxes (in shares)",
        "label": "Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation",
        "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StateAndLocalJurisdictionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StateAndLocalJurisdictionMember",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State [Member]",
        "label": "State and Local Jurisdiction [Member]",
        "documentation": "Designated state or local jurisdiction entitled to levy and collect income tax."
       }
      }
     },
     "auth_ref": [
      "r457"
     ]
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r129",
      "r130",
      "r131",
      "r132",
      "r160",
      "r244",
      "r250",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r272",
      "r273",
      "r275",
      "r276",
      "r277",
      "r282",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r317",
      "r321",
      "r329",
      "r330",
      "r610",
      "r611",
      "r612",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r771",
      "r774",
      "r775",
      "r781",
      "r825",
      "r1012",
      "r1014",
      "r1015",
      "r1016",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "us-gaap_StatementClassOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementClassOfStockAxis",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Stock [Axis]",
        "documentation": "Information by the different classes of stock of the entity."
       }
      }
     },
     "auth_ref": [
      "r158",
      "r172",
      "r173",
      "r174",
      "r200",
      "r230",
      "r234",
      "r236",
      "r238",
      "r247",
      "r248",
      "r285",
      "r337",
      "r340",
      "r341",
      "r342",
      "r346",
      "r347",
      "r375",
      "r376",
      "r378",
      "r379",
      "r380",
      "r512",
      "r642",
      "r643",
      "r644",
      "r645",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r661",
      "r662",
      "r676",
      "r698",
      "r720",
      "r735",
      "r736",
      "r737",
      "r738",
      "r739",
      "r874",
      "r891",
      "r905"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r71",
      "r74",
      "r75",
      "r159",
      "r186",
      "r187",
      "r188",
      "r213",
      "r214",
      "r215",
      "r217",
      "r222",
      "r224",
      "r226",
      "r246",
      "r286",
      "r287",
      "r319",
      "r381",
      "r480",
      "r481",
      "r488",
      "r489",
      "r490",
      "r492",
      "r493",
      "r494",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r515",
      "r516",
      "r517",
      "r518",
      "r519",
      "r520",
      "r522",
      "r524",
      "r536",
      "r605",
      "r632",
      "r633",
      "r634",
      "r651",
      "r720"
     ]
    },
    "srt_StatementGeographicalAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "StatementGeographicalAxis",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Axis]"
       }
      }
     },
     "auth_ref": [
      "r280",
      "r281",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r663",
      "r664",
      "r665",
      "r727",
      "r729",
      "r732",
      "r734",
      "r740",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r757",
      "r790",
      "r812",
      "r813",
      "r814",
      "r815",
      "r816",
      "r817",
      "r818",
      "r819",
      "r824",
      "r831",
      "r947",
      "r1012",
      "r1014",
      "r1015",
      "r1017",
      "r1018",
      "r1019",
      "r1020",
      "r1021",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1029",
      "r1030",
      "r1031",
      "r1032",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementLineItems",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r213",
      "r214",
      "r215",
      "r246",
      "r524",
      "r552",
      "r640",
      "r662",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r676",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r687",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r695",
      "r699",
      "r700",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r720",
      "r832"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED BALANCE SHEETS [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE (LOSS) INCOME [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementTable",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Table]",
        "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r213",
      "r214",
      "r215",
      "r246",
      "r283",
      "r524",
      "r552",
      "r640",
      "r662",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r676",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r687",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r695",
      "r699",
      "r700",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r720",
      "r832"
     ]
    },
    "us-gaap_StockCompensationPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockCompensationPlanMember",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Awards [Member]",
        "documentation": "Share-based payment arrangement in which award of equity shares are granted. Arrangement includes, but is not limited to, grantor incurring liability for product and service based on price of its shares."
       }
      }
     },
     "auth_ref": [
      "r907"
     ]
    },
    "us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockGrantedDuringPeriodValueSharebasedCompensationForfeited",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Relinquishment of stock awards and deferred stock units to pay withholding taxes",
        "label": "Shares Granted, Value, Share-Based Payment Arrangement, Forfeited",
        "documentation": "Value of forfeited shares granted under share-based payment arrangement. Excludes employee stock ownership plan (ESOP)."
       }
      }
     },
     "auth_ref": [
      "r115"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Issuance of common stock on restricted stock units (in shares)",
        "label": "Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures",
        "documentation": "Number of shares issued during the period related to Restricted Stock Awards, net of any shares forfeited."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r70",
      "r71",
      "r104"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuance of common stock from exercise of stock options (in shares)",
        "negatedLabel": "Exercised (in shares)",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r70",
      "r71",
      "r104",
      "r415"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Issuance of common stock on restricted stock units",
        "label": "Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures",
        "documentation": "Value of stock related to Restricted Stock Awards issued during the period, net of the stock value of such awards forfeited."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r104"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock from 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": [
      "r8",
      "r71",
      "r74",
      "r75",
      "r104"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://transact-tech.com/role/StockRepurchaseProgramDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock repurchased (in 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": [
      "r8",
      "r70",
      "r71",
      "r104",
      "r645",
      "r720",
      "r738"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/StockRepurchaseProgramDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Value of common stock repurchased",
        "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": [
      "r8",
      "r70",
      "r71",
      "r104",
      "r651",
      "r720",
      "r738",
      "r838"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total shareholders' equity",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r71",
      "r74",
      "r75",
      "r97",
      "r678",
      "r694",
      "r721",
      "r722",
      "r811",
      "r839",
      "r893",
      "r919",
      "r992",
      "r1044"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shareholders' equity:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent events [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEvents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent events",
        "label": "Subsequent Events [Text Block]",
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business."
       }
      }
     },
     "auth_ref": [
      "r545",
      "r546"
     ]
    },
    "us-gaap_SummaryOfValuationAllowanceTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SummaryOfValuationAllowanceTextBlock",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Valuation Allowance on Deferred Tax Assets",
        "documentation": "Tabular disclosure of valuation allowances to reduce deferred tax assets to net realizable value, including identification of the deferred tax asset more likely than not will not be fully realized and the corresponding amount of the valuation allowance."
       }
      }
     },
     "auth_ref": [
      "r981"
     ]
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental cash flow information:",
        "label": "Supplemental Cash Flow Information [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_TaxCreditCarryforwardAmountSubjectToExpiration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "TaxCreditCarryforwardAmountSubjectToExpiration",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.",
        "label": "Tax Credit Carryforward, Amount, Subject to Expiration",
        "terseLabel": "Tax credit carryforwards subject to expiration"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxCreditCarryforwardAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TaxCreditCarryforwardAxis",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax Credit Carryforward [Axis]",
        "documentation": "Information by specific tax credit related to an unused tax credit."
       }
      }
     },
     "auth_ref": [
      "r477"
     ]
    },
    "tact_TaxCreditCarryforwardExpirationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "TaxCreditCarryforwardExpirationPeriod",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period remaining before the tax credit carryforward expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Tax Credit Carryforward, Expiration Period",
        "terseLabel": "Tax credit carryforwards expiration period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxCreditCarryforwardNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TaxCreditCarryforwardNameDomain",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax Credit Carryforward, Name [Domain]",
        "documentation": "The name of the tax credit carryforward."
       }
      }
     },
     "auth_ref": [
      "r477"
     ]
    },
    "us-gaap_TaxesPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TaxesPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Taxes",
        "label": "Taxes Payable, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r61",
      "r62"
     ]
    },
    "us-gaap_TechnologyBasedIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TechnologyBasedIntangibleAssetsMember",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Purchased Technology [Member]",
        "documentation": "Technology-based intangible assets, including, but not limited to, patented technology, unpatented technology, and developed technology rights."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r926",
      "r927",
      "r928",
      "r929",
      "r930",
      "r932",
      "r934",
      "r935"
     ]
    },
    "tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation": {
     "xbrltype": "durationItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period the customer receives free maintenance upon completion of EPICENTRAL installation, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Term of free maintenance upon completion of software installation",
        "terseLabel": "Term of free maintenance upon completion of software installation"
       }
      }
     },
     "auth_ref": []
    },
    "tact_TheOneGroupHospitalityIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "TheOneGroupHospitalityIncMember",
     "presentation": [
      "http://transact-tech.com/role/RelatedPartyTransactionsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A global hospitality company that develops and operates upscale, high-energy restaurants and lounges and provides hospitality management services for hotels, casinos and other high-end venues both nationally and internationally. One of the Company's directors serves as President and Chief Executive Officer of this entity.",
        "label": "The One Group Hospitality, Inc [Member]",
        "terseLabel": "The One Group Hospitality, Inc [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_TitleOfIndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "TitleOfIndividualAxis",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title and Position [Axis]"
       }
      }
     },
     "auth_ref": [
      "r914",
      "r1000"
     ]
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingReconciliationOfNetLossIncomeToEbitdaAndAdjustedEbitdaDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title and Position [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ToolsDiesAndMoldsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ToolsDiesAndMoldsMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tooling [Member]",
        "documentation": "Equipment commonly used to cut, shape, and form metal and other materials into goods for sale."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts receivable and credit losses",
        "documentation": "Disclosure of accounting policy for accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r133",
      "r135",
      "r136",
      "r916",
      "r917",
      "r918"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "tact_TransactMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "TransactMember",
     "presentation": [
      "http://transact-tech.com/role/SegmentReportingOperatingFinancialResultsOfSegmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The business is managed as one segment: the design, development and marketing of software-driven technology and printing solutions and the sale of printer and terminal related software, services, supplies, and spare parts.",
        "label": "Transact [Member]",
        "terseLabel": "Transact [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tact_TransactServicesGroupMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "TransactServicesGroupMember",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from range of supplies and consumables used in the printing and scanning activities of customers in the restaurant and hospitality, banking, retail, casino and gaming, government and oil and gas exploration markets.",
        "label": "TransAct Services Group [Member]",
        "terseLabel": "TransAct Services Group [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TreasuryStockAcquiredAverageCostPerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockAcquiredAverageCostPerShare",
     "presentation": [
      "http://transact-tech.com/role/StockRepurchaseProgramDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Average purchase price of common stock repurchased (in dollars per share)",
        "label": "Shares Acquired, Average Cost Per Share",
        "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased."
       }
      }
     },
     "auth_ref": [
      "r46"
     ]
    },
    "us-gaap_TreasuryStockCommonMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockCommonMember",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury Stock [Member]",
        "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r46"
     ]
    },
    "us-gaap_TreasuryStockCommonShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockCommonShares",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Treasury stock (in shares)",
        "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury."
       }
      }
     },
     "auth_ref": [
      "r46"
     ]
    },
    "us-gaap_TreasuryStockTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockTextBlock",
     "presentation": [
      "http://transact-tech.com/role/StockRepurchaseProgram"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock repurchase program",
        "documentation": "The entire disclosure for treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock."
       }
      }
     },
     "auth_ref": [
      "r105"
     ]
    },
    "us-gaap_TreasuryStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TreasuryStockValue",
     "crdr": "debit",
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Treasury stock, 4,044,842 shares, at cost",
        "label": "Treasury Stock, Value",
        "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r47",
      "r71",
      "r74"
     ]
    },
    "country_US": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "US",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "United States [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefits",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Unrecognized tax benefits, end of period",
        "periodStartLabel": "Unrecognized tax benefits, beginning of period",
        "label": "Unrecognized Tax Benefits",
        "documentation": "Amount of unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r450",
      "r467",
      "r801"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reductions for tax positions in prior years",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r468",
      "r801"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsPeriodIncreaseDecrease",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax positions taken during the current period",
        "documentation": "Amount of increase (decrease) in unrecognized tax benefits attributable to uncertain tax positions taken in tax returns."
       }
      }
     },
     "auth_ref": [
      "r979"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
     "crdr": "debit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Lapse of statute of limitations",
        "label": "Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations."
       }
      }
     },
     "auth_ref": [
      "r469"
     ]
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Use of estimates",
        "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": [
      "r35",
      "r36",
      "r37",
      "r143",
      "r144",
      "r147",
      "r148"
     ]
    },
    "tact_ValuationAllowanceDeferredTaxAssetUnitedStatesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://transact-tech.com/20241231",
     "localname": "ValuationAllowanceDeferredTaxAssetUnitedStatesMember",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward in the United States.",
        "label": "Valuation Allowance, Deferred Tax Asset, United States [Member]",
        "terseLabel": "Deferred Tax Assets in United States [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowanceOfDeferredTaxAssetsMember",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Income Tax Assets [Member]",
        "label": "SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]",
        "documentation": "Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward."
       }
      }
     },
     "auth_ref": [
      "r896",
      "r897",
      "r898",
      "r899",
      "r900"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesBalance",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance, beginning of period",
        "periodEndLabel": "Balance, end of period",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount",
        "documentation": "Amount of valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r208",
      "r212"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense",
     "crdr": "credit",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additions charged to income tax provision",
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense."
       }
      }
     },
     "auth_ref": [
      "r209"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesDomain",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]",
        "documentation": "Valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r208",
      "r209",
      "r210",
      "r211",
      "r212"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesTypeAxis",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]",
        "documentation": "Information by valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r208",
      "r209",
      "r210",
      "r211",
      "r212"
     ]
    },
    "srt_ValuationAndQualifyingAccountsDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ValuationAndQualifyingAccountsDisclosureLineItems",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r208",
      "r209",
      "r210",
      "r211",
      "r212"
     ]
    },
    "srt_ValuationAndQualifyingAccountsDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ValuationAndQualifyingAccountsDisclosureTable",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]"
       }
      }
     },
     "auth_ref": [
      "r208",
      "r209",
      "r210",
      "r211",
      "r212"
     ]
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable Rate [Axis]",
        "documentation": "Information by type of variable rate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VariableRateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VariableRateDomain",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable Rate [Domain]",
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "calculation": {
      "http://transact-tech.com/role/EarningsPerShareDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Diluted (in shares)",
        "totalLabel": "Diluted: Weighted average common and common equivalent shares outstanding (in shares)",
        "label": "Weighted Average Number of Shares Outstanding, 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": [
      "r229",
      "r238"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "calculation": {
      "http://transact-tech.com/role/EarningsPerShareDetails": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basic (in shares)",
        "terseLabel": "Basic: Weighted average common shares outstanding (in shares)",
        "label": "Weighted Average Number of Shares Outstanding, 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": [
      "r228",
      "r238"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares [Abstract]",
        "label": "Weighted Average Number of Shares Outstanding Reconciliation [Abstract]"
       }
      }
     },
     "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": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r5": {
   "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"
  },
  "r6": {
   "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"
  },
  "r7": {
   "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"
  },
  "r8": {
   "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"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-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": "55",
   "Paragraph": "13",
   "SubTopic": "20",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-13"
  },
  "r15": {
   "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"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r17": {
   "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"
  },
  "r18": {
   "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"
  },
  "r19": {
   "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"
  },
  "r20": {
   "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"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r22": {
   "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"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-1"
  },
  "r24": {
   "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"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-3"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-4"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-5"
  },
  "r28": {
   "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"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-16"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-21"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-8"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r42": {
   "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"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r44": {
   "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"
  },
  "r45": {
   "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"
  },
  "r46": {
   "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"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4"
  },
  "r48": {
   "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"
  },
  "r49": {
   "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"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-12"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-13"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-20"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "850",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "850",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3"
  },
  "r57": {
   "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"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "825",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478898/942-825-50-1"
  },
  "r59": {
   "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"
  },
  "r60": {
   "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"
  },
  "r61": {
   "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"
  },
  "r62": {
   "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"
  },
  "r63": {
   "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"
  },
  "r64": {
   "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)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r65": {
   "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"
  },
  "r66": {
   "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"
  },
  "r67": {
   "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"
  },
  "r68": {
   "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"
  },
  "r69": {
   "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"
  },
  "r70": {
   "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"
  },
  "r71": {
   "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"
  },
  "r72": {
   "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"
  },
  "r73": {
   "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"
  },
  "r74": {
   "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"
  },
  "r75": {
   "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"
  },
  "r76": {
   "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"
  },
  "r77": {
   "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(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r78": {
   "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(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r80": {
   "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"
  },
  "r81": {
   "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"
  },
  "r82": {
   "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"
  },
  "r83": {
   "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"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r87": {
   "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"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r89": {
   "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"
  },
  "r90": {
   "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"
  },
  "r91": {
   "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"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r93": {
   "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"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "270",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/270/tableOfContent"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r97": {
   "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"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/360/tableOfContent"
  },
  "r100": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r101": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r102": {
   "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"
  },
  "r103": {
   "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"
  },
  "r104": {
   "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"
  },
  "r105": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505-30/tableOfContent"
  },
  "r106": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "710",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/710/tableOfContent"
  },
  "r107": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "712",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/712/tableOfContent"
  },
  "r108": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/715/tableOfContent"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r110": {
   "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"
  },
  "r111": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r114": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r115": {
   "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"
  },
  "r116": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r117": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r118": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r119": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r120": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r121": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r122": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r123": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(14)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r126": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r127": {
   "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"
  },
  "r128": {
   "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(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r129": {
   "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"
  },
  "r130": {
   "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"
  },
  "r131": {
   "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"
  },
  "r132": {
   "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"
  },
  "r133": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-11B"
  },
  "r134": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-11B"
  },
  "r135": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-15"
  },
  "r136": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-6"
  },
  "r137": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481161/840-30-50-1"
  },
  "r138": {
   "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"
  },
  "r139": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "270",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482989/270-10-45-6"
  },
  "r140": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "270",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r141": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r142": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "35",
   "Topic": "720",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483406/720-35-50-1"
  },
  "r143": {
   "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"
  },
  "r144": {
   "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"
  },
  "r145": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r146": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-1"
  },
  "r147": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-11"
  },
  "r148": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12"
  },
  "r149": {
   "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"
  },
  "r150": {
   "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"
  },
  "r151": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r152": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-6"
  },
  "r153": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-7"
  },
  "r154": {
   "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"
  },
  "r155": {
   "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"
  },
  "r156": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/275/tableOfContent"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r158": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r159": {
   "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"
  },
  "r160": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1"
  },
  "r161": {
   "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"
  },
  "r162": {
   "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"
  },
  "r163": {
   "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"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r165": {
   "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"
  },
  "r166": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r167": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r168": {
   "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"
  },
  "r169": {
   "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"
  },
  "r170": {
   "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"
  },
  "r171": {
   "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"
  },
  "r172": {
   "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"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r177": {
   "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(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r178": {
   "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(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "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"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-1"
  },
  "r186": {
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "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"
  },
  "r189": {
   "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"
  },
  "r190": {
   "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"
  },
  "r191": {
   "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(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r193": {
   "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"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "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"
  },
  "r197": {
   "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"
  },
  "r198": {
   "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"
  },
  "r199": {
   "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"
  },
  "r200": {
   "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"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r203": {
   "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"
  },
  "r204": {
   "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"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r213": {
   "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"
  },
  "r214": {
   "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"
  },
  "r215": {
   "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"
  },
  "r216": {
   "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"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "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"
  },
  "r220": {
   "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"
  },
  "r221": {
   "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"
  },
  "r222": {
   "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"
  },
  "r223": {
   "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"
  },
  "r224": {
   "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"
  },
  "r225": {
   "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"
  },
  "r226": {
   "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"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r228": {
   "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"
  },
  "r229": {
   "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"
  },
  "r230": {
   "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"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-22"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-23"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-28A"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-3"
  },
  "r235": {
   "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"
  },
  "r236": {
   "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"
  },
  "r237": {
   "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"
  },
  "r238": {
   "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"
  },
  "r239": {
   "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"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r241": {
   "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"
  },
  "r242": {
   "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"
  },
  "r243": {
   "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"
  },
  "r244": {
   "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"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1B"
  },
  "r246": {
   "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"
  },
  "r247": {
   "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"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482987/272-10-50-3"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "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"
  },
  "r253": {
   "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"
  },
  "r254": {
   "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"
  },
  "r255": {
   "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"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r257": {
   "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"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r261": {
   "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"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r265": {
   "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"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A"
  },
  "r267": {
   "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"
  },
  "r268": {
   "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"
  },
  "r269": {
   "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"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r271": {
   "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"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r273": {
   "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"
  },
  "r274": {
   "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"
  },
  "r275": {
   "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"
  },
  "r276": {
   "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"
  },
  "r277": {
   "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"
  },
  "r278": {
   "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"
  },
  "r279": {
   "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"
  },
  "r280": {
   "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"
  },
  "r281": {
   "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"
  },
  "r282": {
   "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"
  },
  "r283": {
   "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"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4"
  },
  "r285": {
   "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"
  },
  "r286": {
   "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"
  },
  "r287": {
   "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"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1"
  },
  "r289": {
   "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"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/330/tableOfContent"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-1"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-4"
  },
  "r294": {
   "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"
  },
  "r295": {
   "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"
  },
  "r296": {
   "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"
  },
  "r297": {
   "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"
  },
  "r298": {
   "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"
  },
  "r299": {
   "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"
  },
  "r300": {
   "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"
  },
  "r301": {
   "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"
  },
  "r302": {
   "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"
  },
  "r303": {
   "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"
  },
  "r304": {
   "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"
  },
  "r305": {
   "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"
  },
  "r306": {
   "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"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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"
  },
  "r309": {
   "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"
  },
  "r310": {
   "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"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "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"
  },
  "r316": {
   "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"
  },
  "r317": {
   "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"
  },
  "r318": {
   "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"
  },
  "r319": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "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"
  },
  "r330": {
   "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"
  },
  "r331": {
   "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"
  },
  "r332": {
   "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"
  },
  "r333": {
   "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"
  },
  "r334": {
   "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"
  },
  "r335": {
   "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"
  },
  "r336": {
   "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"
  },
  "r337": {
   "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"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "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"
  },
  "r345": {
   "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)(C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r346": {
   "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"
  },
  "r347": {
   "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"
  },
  "r348": {
   "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"
  },
  "r349": {
   "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"
  },
  "r350": {
   "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"
  },
  "r351": {
   "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"
  },
  "r352": {
   "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"
  },
  "r353": {
   "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"
  },
  "r354": {
   "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"
  },
  "r355": {
   "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"
  },
  "r356": {
   "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"
  },
  "r357": {
   "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"
  },
  "r358": {
   "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"
  },
  "r359": {
   "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"
  },
  "r360": {
   "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"
  },
  "r361": {
   "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"
  },
  "r362": {
   "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"
  },
  "r363": {
   "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"
  },
  "r364": {
   "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"
  },
  "r365": {
   "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"
  },
  "r366": {
   "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"
  },
  "r367": {
   "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"
  },
  "r368": {
   "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"
  },
  "r369": {
   "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"
  },
  "r370": {
   "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"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "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"
  },
  "r374": {
   "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"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "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"
  },
  "r382": {
   "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"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-17"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-19"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "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": "(n)",
   "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": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480794/715-70-50-1"
  },
  "r399": {
   "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"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "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"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480454/718-10-45-1"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "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"
  },
  "r408": {
   "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"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r410": {
   "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"
  },
  "r411": {
   "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"
  },
  "r412": {
   "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"
  },
  "r413": {
   "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"
  },
  "r414": {
   "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"
  },
  "r415": {
   "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"
  },
  "r416": {
   "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"
  },
  "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)(04)",
   "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)(2)(i)",
   "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)(2)(ii)",
   "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)(2)(iii)",
   "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)(2)(iii)(01)",
   "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)(iii)(02)",
   "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)(iii)(03)",
   "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": "(d)(1)",
   "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": "(d)(2)",
   "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": "(e)(1)",
   "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": "(e)(2)",
   "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": "(f)(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": "(f)(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": "(f)(2)(i)",
   "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": "(f)(2)(ii)",
   "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)(iii)",
   "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)(iv)",
   "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)(v)",
   "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": "(h)(1)(i)",
   "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": "(h)(2)",
   "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": "(h)(2)(i)",
   "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": "(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": "(l)",
   "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": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.C.Q3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.1.Q5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.3.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r444": {
   "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"
  },
  "r445": {
   "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"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483406/720-35-50-1"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483044/730-10-05-1"
  },
  "r448": {
   "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"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/740/tableOfContent"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-10B"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-25"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-28"
  },
  "r453": {
   "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"
  },
  "r454": {
   "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"
  },
  "r455": {
   "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"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10A"
  },
  "r457": {
   "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"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(8)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-19"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-20"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21"
  },
  "r476": {
   "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"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-3"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r480": {
   "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"
  },
  "r481": {
   "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"
  },
  "r482": {
   "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.1.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.5.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r484": {
   "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"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2"
  },
  "r488": {
   "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"
  },
  "r489": {
   "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"
  },
  "r490": {
   "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"
  },
  "r491": {
   "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"
  },
  "r492": {
   "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"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "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"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r500": {
   "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"
  },
  "r501": {
   "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"
  },
  "r502": {
   "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"
  },
  "r503": {
   "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"
  },
  "r504": {
   "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"
  },
  "r505": {
   "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"
  },
  "r506": {
   "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"
  },
  "r507": {
   "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"
  },
  "r508": {
   "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"
  },
  "r509": {
   "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"
  },
  "r510": {
   "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"
  },
  "r511": {
   "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"
  },
  "r512": {
   "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"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/830/tableOfContent"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r515": {
   "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"
  },
  "r516": {
   "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"
  },
  "r517": {
   "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"
  },
  "r518": {
   "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"
  },
  "r519": {
   "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"
  },
  "r520": {
   "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"
  },
  "r521": {
   "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"
  },
  "r522": {
   "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"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/842-20/tableOfContent"
  },
  "r524": {
   "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"
  },
  "r525": {
   "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"
  },
  "r526": {
   "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"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-1"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r534": {
   "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"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r536": {
   "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"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/850/tableOfContent"
  },
  "r538": {
   "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"
  },
  "r539": {
   "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"
  },
  "r540": {
   "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"
  },
  "r541": {
   "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"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-2"
  },
  "r543": {
   "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"
  },
  "r544": {
   "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"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/855/tableOfContent"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r547": {
   "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"
  },
  "r548": {
   "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"
  },
  "r549": {
   "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"
  },
  "r550": {
   "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"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "330",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478411/912-330-50-1"
  },
  "r552": {
   "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"
  },
  "r553": {
   "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"
  },
  "r554": {
   "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"
  },
  "r555": {
   "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"
  },
  "r556": {
   "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"
  },
  "r557": {
   "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"
  },
  "r558": {
   "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"
  },
  "r559": {
   "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"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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"
  },
  "r562": {
   "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"
  },
  "r563": {
   "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"
  },
  "r564": {
   "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"
  },
  "r565": {
   "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"
  },
  "r566": {
   "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"
  },
  "r567": {
   "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"
  },
  "r568": {
   "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"
  },
  "r569": {
   "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"
  },
  "r570": {
   "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"
  },
  "r571": {
   "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"
  },
  "r572": {
   "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"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "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"
  },
  "r576": {
   "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"
  },
  "r577": {
   "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"
  },
  "r578": {
   "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"
  },
  "r579": {
   "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"
  },
  "r580": {
   "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"
  },
  "r581": {
   "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"
  },
  "r582": {
   "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"
  },
  "r583": {
   "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"
  },
  "r584": {
   "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"
  },
  "r585": {
   "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"
  },
  "r586": {
   "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"
  },
  "r587": {
   "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"
  },
  "r588": {
   "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"
  },
  "r589": {
   "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"
  },
  "r590": {
   "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"
  },
  "r591": {
   "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"
  },
  "r592": {
   "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)(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r593": {
   "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"
  },
  "r594": {
   "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"
  },
  "r595": {
   "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"
  },
  "r596": {
   "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"
  },
  "r597": {
   "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"
  },
  "r598": {
   "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"
  },
  "r599": {
   "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)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r600": {
   "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)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r602": {
   "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"
  },
  "r603": {
   "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"
  },
  "r604": {
   "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"
  },
  "r605": {
   "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"
  },
  "r606": {
   "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"
  },
  "r607": {
   "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"
  },
  "r608": {
   "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"
  },
  "r609": {
   "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"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r621": {
   "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"
  },
  "r622": {
   "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"
  },
  "r623": {
   "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"
  },
  "r624": {
   "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"
  },
  "r625": {
   "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"
  },
  "r626": {
   "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"
  },
  "r627": {
   "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"
  },
  "r628": {
   "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"
  },
  "r629": {
   "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"
  },
  "r630": {
   "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"
  },
  "r631": {
   "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"
  },
  "r632": {
   "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"
  },
  "r633": {
   "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"
  },
  "r634": {
   "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"
  },
  "r635": {
   "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"
  },
  "r636": {
   "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"
  },
  "r637": {
   "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"
  },
  "r638": {
   "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"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r640": {
   "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"
  },
  "r641": {
   "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(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r642": {
   "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"
  },
  "r643": {
   "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"
  },
  "r644": {
   "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"
  },
  "r645": {
   "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"
  },
  "r646": {
   "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"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13"
  },
  "r648": {
   "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"
  },
  "r649": {
   "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"
  },
  "r650": {
   "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"
  },
  "r651": {
   "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"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-2"
  },
  "r653": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "27",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-27"
  },
  "r654": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r657": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r662": {
   "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"
  },
  "r663": {
   "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"
  },
  "r664": {
   "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"
  },
  "r665": {
   "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"
  },
  "r666": {
   "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"
  },
  "r667": {
   "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"
  },
  "r668": {
   "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"
  },
  "r669": {
   "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"
  },
  "r670": {
   "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"
  },
  "r671": {
   "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"
  },
  "r672": {
   "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"
  },
  "r673": {
   "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"
  },
  "r674": {
   "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"
  },
  "r675": {
   "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"
  },
  "r676": {
   "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"
  },
  "r677": {
   "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"
  },
  "r678": {
   "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"
  },
  "r679": {
   "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"
  },
  "r680": {
   "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"
  },
  "r681": {
   "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"
  },
  "r682": {
   "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"
  },
  "r683": {
   "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"
  },
  "r684": {
   "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"
  },
  "r685": {
   "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"
  },
  "r686": {
   "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"
  },
  "r687": {
   "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"
  },
  "r688": {
   "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"
  },
  "r689": {
   "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"
  },
  "r690": {
   "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"
  },
  "r691": {
   "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"
  },
  "r692": {
   "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"
  },
  "r693": {
   "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"
  },
  "r694": {
   "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"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-6"
  },
  "r697": {
   "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"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478297/946-220-50-3"
  },
  "r699": {
   "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"
  },
  "r700": {
   "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"
  },
  "r701": {
   "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"
  },
  "r702": {
   "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"
  },
  "r703": {
   "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"
  },
  "r704": {
   "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"
  },
  "r705": {
   "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"
  },
  "r706": {
   "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"
  },
  "r707": {
   "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"
  },
  "r708": {
   "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"
  },
  "r709": {
   "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"
  },
  "r710": {
   "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"
  },
  "r711": {
   "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"
  },
  "r712": {
   "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"
  },
  "r713": {
   "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"
  },
  "r714": {
   "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"
  },
  "r715": {
   "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"
  },
  "r716": {
   "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"
  },
  "r717": {
   "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"
  },
  "r718": {
   "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"
  },
  "r719": {
   "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"
  },
  "r720": {
   "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"
  },
  "r721": {
   "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"
  },
  "r722": {
   "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"
  },
  "r723": {
   "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"
  },
  "r724": {
   "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"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r726": {
   "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"
  },
  "r727": {
   "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"
  },
  "r728": {
   "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"
  },
  "r729": {
   "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"
  },
  "r730": {
   "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"
  },
  "r731": {
   "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"
  },
  "r732": {
   "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"
  },
  "r733": {
   "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"
  },
  "r734": {
   "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"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-1"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r738": {
   "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"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r740": {
   "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"
  },
  "r741": {
   "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"
  },
  "r742": {
   "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"
  },
  "r743": {
   "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"
  },
  "r744": {
   "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"
  },
  "r745": {
   "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"
  },
  "r746": {
   "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"
  },
  "r747": {
   "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"
  },
  "r748": {
   "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"
  },
  "r749": {
   "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"
  },
  "r750": {
   "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"
  },
  "r751": {
   "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"
  },
  "r752": {
   "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"
  },
  "r753": {
   "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"
  },
  "r754": {
   "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"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r756": {
   "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"
  },
  "r757": {
   "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"
  },
  "r758": {
   "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"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r762": {
   "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"
  },
  "r763": {
   "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"
  },
  "r764": {
   "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"
  },
  "r765": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r767": {
   "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"
  },
  "r768": {
   "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"
  },
  "r769": {
   "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"
  },
  "r770": {
   "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"
  },
  "r771": {
   "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"
  },
  "r772": {
   "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"
  },
  "r773": {
   "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"
  },
  "r774": {
   "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"
  },
  "r775": {
   "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"
  },
  "r776": {
   "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"
  },
  "r777": {
   "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"
  },
  "r778": {
   "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"
  },
  "r779": {
   "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"
  },
  "r780": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5"
  },
  "r781": {
   "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"
  },
  "r782": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40"
  },
  "r783": {
   "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"
  },
  "r784": {
   "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"
  },
  "r785": {
   "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"
  },
  "r786": {
   "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"
  },
  "r787": {
   "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"
  },
  "r788": {
   "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"
  },
  "r789": {
   "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"
  },
  "r790": {
   "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"
  },
  "r791": {
   "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"
  },
  "r792": {
   "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"
  },
  "r793": {
   "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"
  },
  "r794": {
   "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"
  },
  "r795": {
   "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"
  },
  "r796": {
   "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"
  },
  "r797": {
   "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"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483385/720-35-55-1"
  },
  "r801": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "217",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-217"
  },
  "r802": {
   "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"
  },
  "r803": {
   "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"
  },
  "r804": {
   "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"
  },
  "r805": {
   "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"
  },
  "r806": {
   "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"
  },
  "r807": {
   "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"
  },
  "r808": {
   "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"
  },
  "r809": {
   "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"
  },
  "r810": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53"
  },
  "r811": {
   "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"
  },
  "r812": {
   "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"
  },
  "r813": {
   "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"
  },
  "r814": {
   "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"
  },
  "r815": {
   "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"
  },
  "r816": {
   "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"
  },
  "r817": {
   "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"
  },
  "r818": {
   "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"
  },
  "r819": {
   "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"
  },
  "r820": {
   "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"
  },
  "r821": {
   "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"
  },
  "r822": {
   "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"
  },
  "r823": {
   "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"
  },
  "r824": {
   "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"
  },
  "r825": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r826": {
   "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"
  },
  "r827": {
   "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"
  },
  "r828": {
   "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"
  },
  "r829": {
   "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"
  },
  "r830": {
   "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"
  },
  "r831": {
   "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"
  },
  "r832": {
   "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"
  },
  "r833": {
   "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"
  },
  "r834": {
   "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"
  },
  "r835": {
   "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"
  },
  "r836": {
   "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"
  },
  "r837": {
   "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"
  },
  "r838": {
   "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"
  },
  "r839": {
   "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"
  },
  "r840": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r841": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r842": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r844": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r845": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K"
  },
  "r846": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r847": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r848": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r849": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r850": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "2"
  },
  "r851": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "1"
  },
  "r852": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2"
  },
  "r853": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "i"
  },
  "r854": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r855": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r856": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r857": {
   "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"
  },
  "r858": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w"
  },
  "r859": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r860": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r861": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r864": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r865": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "2"
  },
  "r867": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "1"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "i"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r871": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r874": {
   "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"
  },
  "r875": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "SubTopic": "740",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479176/718-740-35-2"
  },
  "r876": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r877": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "SubTopic": "825",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r878": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "SubTopic": "20",
   "Topic": "842",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r879": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r880": {
   "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(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r881": {
   "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(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r882": {
   "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(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r883": {
   "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"
  },
  "r884": {
   "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"
  },
  "r885": {
   "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"
  },
  "r886": {
   "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(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r887": {
   "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(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r888": {
   "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"
  },
  "r889": {
   "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"
  },
  "r890": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r891": {
   "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"
  },
  "r892": {
   "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"
  },
  "r893": {
   "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"
  },
  "r894": {
   "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"
  },
  "r895": {
   "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)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r896": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r897": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r898": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r899": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r900": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r901": {
   "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"
  },
  "r902": {
   "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"
  },
  "r903": {
   "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"
  },
  "r904": {
   "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"
  },
  "r905": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "55",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-55"
  },
  "r906": {
   "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"
  },
  "r907": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r908": {
   "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"
  },
  "r909": {
   "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"
  },
  "r910": {
   "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"
  },
  "r911": {
   "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"
  },
  "r912": {
   "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"
  },
  "r913": {
   "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"
  },
  "r914": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r915": {
   "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"
  },
  "r916": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r917": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r918": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481569/310-20-50-1"
  },
  "r919": {
   "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"
  },
  "r920": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r921": {
   "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"
  },
  "r922": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-20/tableOfContent"
  },
  "r923": {
   "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"
  },
  "r924": {
   "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"
  },
  "r925": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r926": {
   "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"
  },
  "r927": {
   "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"
  },
  "r928": {
   "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"
  },
  "r929": {
   "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"
  },
  "r930": {
   "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"
  },
  "r931": {
   "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"
  },
  "r932": {
   "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"
  },
  "r933": {
   "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"
  },
  "r934": {
   "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"
  },
  "r935": {
   "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"
  },
  "r936": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r937": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r938": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r939": {
   "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"
  },
  "r940": {
   "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"
  },
  "r941": {
   "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"
  },
  "r942": {
   "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"
  },
  "r943": {
   "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"
  },
  "r944": {
   "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"
  },
  "r945": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r946": {
   "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"
  },
  "r947": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r948": {
   "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"
  },
  "r949": {
   "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"
  },
  "r950": {
   "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"
  },
  "r951": {
   "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"
  },
  "r952": {
   "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"
  },
  "r953": {
   "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"
  },
  "r954": {
   "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"
  },
  "r955": {
   "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"
  },
  "r956": {
   "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"
  },
  "r957": {
   "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"
  },
  "r958": {
   "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"
  },
  "r959": {
   "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"
  },
  "r960": {
   "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"
  },
  "r961": {
   "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"
  },
  "r962": {
   "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"
  },
  "r963": {
   "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"
  },
  "r964": {
   "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"
  },
  "r965": {
   "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"
  },
  "r966": {
   "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"
  },
  "r967": {
   "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"
  },
  "r968": {
   "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"
  },
  "r969": {
   "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"
  },
  "r970": {
   "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"
  },
  "r971": {
   "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"
  },
  "r972": {
   "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"
  },
  "r973": {
   "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"
  },
  "r974": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r975": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "720",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483384/720-30-45-1"
  },
  "r976": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r977": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r978": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r979": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r980": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r981": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r982": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r983": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r984": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-3"
  },
  "r985": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-6"
  },
  "r986": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r987": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r988": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r989": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480682/815-20-25-6A"
  },
  "r990": {
   "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"
  },
  "r991": {
   "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"
  },
  "r992": {
   "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"
  },
  "r993": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481956/830-20-45-1"
  },
  "r994": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481926/830-20-50-1"
  },
  "r995": {
   "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"
  },
  "r996": {
   "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"
  },
  "r997": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-4"
  },
  "r998": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r999": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r1000": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-2"
  },
  "r1001": {
   "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"
  },
  "r1002": {
   "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"
  },
  "r1003": {
   "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"
  },
  "r1004": {
   "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"
  },
  "r1005": {
   "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"
  },
  "r1006": {
   "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"
  },
  "r1007": {
   "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"
  },
  "r1008": {
   "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"
  },
  "r1009": {
   "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"
  },
  "r1010": {
   "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"
  },
  "r1011": {
   "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"
  },
  "r1012": {
   "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"
  },
  "r1013": {
   "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"
  },
  "r1014": {
   "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"
  },
  "r1015": {
   "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"
  },
  "r1016": {
   "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"
  },
  "r1017": {
   "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"
  },
  "r1018": {
   "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"
  },
  "r1019": {
   "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"
  },
  "r1020": {
   "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"
  },
  "r1021": {
   "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"
  },
  "r1022": {
   "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"
  },
  "r1023": {
   "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"
  },
  "r1024": {
   "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"
  },
  "r1025": {
   "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"
  },
  "r1026": {
   "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"
  },
  "r1027": {
   "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"
  },
  "r1028": {
   "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"
  },
  "r1029": {
   "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"
  },
  "r1030": {
   "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"
  },
  "r1031": {
   "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"
  },
  "r1032": {
   "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"
  },
  "r1033": {
   "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"
  },
  "r1034": {
   "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"
  },
  "r1035": {
   "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"
  },
  "r1036": {
   "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"
  },
  "r1037": {
   "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"
  },
  "r1038": {
   "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"
  },
  "r1039": {
   "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"
  },
  "r1040": {
   "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"
  },
  "r1041": {
   "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"
  },
  "r1042": {
   "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"
  },
  "r1043": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r1044": {
   "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"
  },
  "r1045": {
   "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"
  },
  "r1046": {
   "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"
  },
  "r1047": {
   "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"
  },
  "r1048": {
   "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"
  },
  "r1049": {
   "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"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>99
<FILENAME>0001140361-25-010065-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001140361-25-010065-xbrl.zip
M4$L#!!0    ( '.+>%H)/NJ\F<D" /XU'@ 2    968R,# S.3 S.%\Q,&LN
M:'1M['UK<]O(L>CW_ I$.3FQJTB9X)OVKF_)LK2KQ+9T)#F;G%NW4@-@0&(-
M @P>DIA??[M['AB H$3)HD31W$IV13P&,ST]_7[\]']NIJ%UQ9,TB*.?_V+O
MM_YB\<B-O2 :__R7@XO#DY.__)_W?_AIDL%C\&B4OKUQDC#X>6^29;.W;]Y<
M7U_OXY7].!F_:;=:G3=!E&8L<OF>?#X,HF^W/(ZW'9;JQV\6GK_NT-/V:#1Z
M0W?UHVE0]R ,:[_YQ^=/%^Z$3UFS.A_\O%>\:,ZF_T;<5(\&:=QMVX/;%BN>
M4"^D2:8?]EGJT(-P$1YN=_6H-\L&M!%ZL$+^CP_GGXK'L_KGBT??9 F+4C].
MIBR#?<2OM9JM=M-N&X,T4^Z6!H+?^^/XZM9Q[%ZS-6QV;#5.GC;'C,T6%REO
ME!;J\0J8U1?A1NE!-\ZC+)G7/RQOEE_(DP30=-D;\FYY,EG2S.8SGM8#$VZ_
MP=OX3KO9ZIAKSI*E&#!Z W?5@Q$+W+1^2G2K-)\T<.L?A1OE![-9LN1)N%-Z
ME-^XD_I'\4X9@MQ? CSNE\=TO25#NEYYQ/F2!^%&Z<&,N05&$\;!A6;&W<F^
M&T_I4;NMP;^<%"!-VD/:Q)GW_@\6_/-3%F0A?__3&_%?<>V/S:;U*7!YE'+/
MRN*WUH<D9EX2>&-N'0<1D(: A=9%'.:(\VG#.HG<?7J5_OD8N_F41YGE)IQE
M,$2> FTT!SD[/_6#D%OMWGYGW][OM4?]XO7#>#9/@O$DLV#2/:MIP?)ZYMO-
MIISGE&?,PK4V^;_SX.KGO<,XRN##S4M RSW+%;]^WLOX3?:&UOX&%O]&K/X/
M/SFQ-[?2;![RG_<<YGX;)W!NO*8;AW'RUOJ33_^\L]3O%OWS#N'G!5=6 'OW
M\>+L.$ R\&O@>3S:4Z-Y03H+V?RM%<41AS=^"F[>XE=Y(OZDI^E/>. + "L)
M7"MB4WR5!V\/ 'H>0O X9.,]^M(Q;/B_AK[?'PX]WK4]V'"7,S9R1EW7Z?9<
M[KJ#OESR37:.J.HB6K3LEIW%!8((2O7S'E"WMWYPP[VFST)@)>_I/S^]*4UI
M^0P/B5YDQT'JLO"?G"5'D?<1]MJ8[ "(_:@'I*'#VUW.!B/;[H_L@>.X WL
MR[CG9#T8O3F%-R9-C\WWWMMMH#<KSU>A9#'A8[B2&M-U_1$?VJ[;9>ZH:_/>
MR/9[G=&HVP$XCSJ]%:;['O]ZX(S.X&[L5>?4<_M=C]F^WW)YM]/FS.D.;=_F
M+0!?U^.]%>9T_,^59W04 0V8'\*<$A:>1!Z_^1N?&[,9M0=MWA]PO\M[W<[
M&S%GT(,K_4[?\T<M=X79P/F!*X-.J[-D5L<)? EHBIR69)%OS_D5CW)^#L))
M$ $M 7 1;H",<NJ$P9AXKS%5WAEP-AS"QCE>MPWDQ?&==L=S^'#D,_A_S51Q
M@O]:Z3M'-S/N EF[#*;PR*E_ 5=37\S[(F-)A@?AX"9(_P7C#G#!G_G4X<#S
M\B@07_P*< !BG09OHR $^I3D< (52!0,ZG?J7B"Y;:H"Y6P#:GZOY0X99QW8
MXFX'_FSW6R.G UC(6CW7[SX/U-Z?V>W/*R'Q&D'3&K0<>^2X;3X<=.U!=]AK
M#P>]G@W LOL=[PE!TW\0:(BKY%Z0Q<EQD$Q//&-M=LOOLI;G#1T'. MG([\[
M&'8Z76_0ZCJNOPKE WITOP-]&$^G08;T+SV(/&3;L'(00 -NTC^G[8SLX:C=
MZK6\;@_.L.=SN^N/^LZ(>9V6MP3J#SUHWS57=S1T^0#XG0WL#HECG]E]O^VP
M7J^#?&5QKIV'S?5-68!(N,]1=.?I^Y]0TWN;D@X'(UJD^;V=)#@X2I!-!:#]
MFQ1@)VZC!/_S7AI,9R$'\8B&-\>DGVF<)_2+--FW<B6T^%I\D,]QXBCJ5^#A
M;S_@B45SY+6JU>')W\I\HOKR>W6I//J,SJSZE:IC0TRYV;+A?^J]XIZ>IE<\
M*N6*\AWU6WWD30D.R\'2[[0V !A"G<\D*/K-3DL/).\\;'V]5L?N;M;Z>JB'
MVMW'6=^F('-I_TKX^7WKZVS>^CJ/N3[!@H&#9ARI]V'(TA2X:Q:[WXB;7L!H
M/#TX(W*7<(_N*-:Z7JA(2L3'.#'QTX./W<S"P TR,0?+"^ N61DU+UJZF+WW
M^I'EJ_KI3>V'-#SU?)X;*7>;MO9->]23UM$"P*;0E)( T%E= .@\I@#0+N/R
MT;]S5+#CZ2R.2)I$?+Y,.$OS9$X[CJ)F'+T0;*Y;3H'12]>U)GQN/R8^K[)Q
M8DTOB?S<OF$+ZWDQ&[4!Y.8Y$?'  [T>=IR%9RSP3J)#-@LR%FX%4MZZMA>#
MH'=MH.OFTSQ$5\EI-N$)WD[X!$%VQ4\B-Y[R[=C,5=>Y+1M[SC,61-P[8@D:
M_]*MV,7Z1;V$+:M(J;M3^7RG<B/$\_OAP^XP_R@[O9/LMWM_=P+SC[GO.U/+
M2]_OBJ-Q)\%MB 3W?![6^^##3H+[479ZQ^%_S'W?<?@?:[]WFMI+V]^=I>4I
MS*:/Z]S?$=XG\V*O,_YI1T%?2,S33IE]1B?ADY_ W<8^S<8^ZHG=*2-/QQ.?
MGM3NK <OG*3N-G!S3^#.4OL4&N"3$\V=(K$1Q+&UV8EX=NM9C(J$OV=)#*]E
M\[,0 'P0>;C_,]RR#W.L%T%8?)S#V<SRA,/]4]\/7*Z?$MO]KW,6C<6SGX,H
MF.;3S<;V%1:]]QZ30]_>N?2E!^#.R:1)]E;#;>\]_BP![R70P#7A$+O97!RJ
MVS9SO@]'B*?$SA>)0\B5\HPG%[&?73-:]0]#B.Y>^XX2K0.+=J1H[?CY(K'H
M,H[#]".FIT;>YSCT-EP;6VDCM2VK?FW;M8&?F3L!Q3.9+V+J5FSB+>M[.1NY
M[81XDP&^R?+35D@LE: >.-U>[F:GR05/KD"4%\(*2X,HAB/\"\,R6%(^T=::
M7W@\3MAL$K@LI.=/X!M)Q(0M='/W;ND"I#11LXSO$V_K@*LDESH0/R8";4:(
M424IH!;;CN/8D[\ON3N)XC >S[<%YVY!@5O6_7UH]YAX_KV8MRGI*/?%O!\
ME[9Z:\_B]"#/8E$*',CL!Q9]TW3VA6WNK6O9^NU]\2Q@1XY7%#MOQ?-;\.#K
MQ29N^Z,?Z.]%-MF*X.W7BZV7,U\:KCSOKFTT4=C):-MP(&NW]E)VSY#7TE^2
M.)]MB^*W2<:&6P"]=41EC2:'S>0=&V9AV&)^]?V*YXZL/299^['TXI6DI1U+
MW6*6NM'"7*U#8Q.Q:&.<,AM-2'9L;,O9V$83DUNHZR9BTX;QB8V6CQ\FH6RF
MZO5]:M .M9Y"!-GQJI<;MK(I$M*/19>V6K*X+XW8Q@W>$8&G49,V$7-V>L@Z
M V$WDUH\VE'>,9\UH--68\Q+W<ZUNGHVDTH\KTRQ\^5LM:7DD<T8.T:TMJ"J
M;4*M+8U_V!34VEG6MG!3?[P4K4VRK_Y(,:+?*P1M(BYMF+OFV;96I'7S*Q[E
M_)Q/68!E]LYXXL?)E$4N/W7"8$Q'ZNAFQMV,>Y<!JI.G_@5<37V 4X EW^1\
M"15@W#[NUW/N?C:?<6]QZXNZ@H^Y8ECB>@;>]V(<Q[J9AE'Z5GY# \IGJ;,?
M)^,W\L8;W- ]Q)&^0J>U3NN]/@X&M#<KB7Y-Z-W;H?=SHG=OA]YK1>_!#KV?
M$[T'._2NE3L/8U@PZ.RTW/,@_?9A_H%'[F3*DF^$NA<LY*D$UA>NRK75O%94
M>\O3+)YB8?W*,_+=S^SW.%$/B:*]GX+Q)/LMCCR>",OZ2>1NIIQ;E.5="@"C
M=N_MD/@^16H1C%+67@[,AW_PEF67T*58>RW>;)VL7W65W'F<#ERRD0%D7!Y<
M,2?DZSE1);T=T,#0J,_"EW>VEB#9,FBNZ62M M2UG+''(RW;XC3:';3O--9L
M,Y)O J79<;0?5D;<).EL=ZA>)/=Z$JWK);*N=2LB/SSO_&'XUNZ(_: 8_NPT
MYH?A8CO1<%L0_(D-+0\0DG=\Z\<\49ND;#V-!/HBQ,!GRY7>=2-YMFXD:^BO
MN\I&?N(LY9,X]$ZFLR2^HFC&;>H-=,OZUK21F]JP\$5OY_:T#UR=QNYV]&40
MV]5W].ZF<R]_2Y^ML=XS[>F.@6[T1CYFG\T7O9];U/7R'BPTN.'>09KR+#VZ
M<</< RT6E+DT2W(*0SR)8!27I]MP8 5#O=^"M^L$[W;[679[#6?[. "QD'\*
MKKAW$L%HX\ )N5CHA[DP6(4L%=:VPH?R 3C5PO.;O=?W6*C1[W:5%;^$HWW_
MS3YCV>;+5P_:U-+*7L+F=7>;]Z2;MP:[TH[,;BJ977?:2AJ'@4?NC).,3\4.
MG\*H<"D:7X@YRQ46:?H?\C2(0)I0]TMIUIN) .C@JE]NL<]+UOW]/J9; 5?)
M[?YQ'+0_"NJM 0N>!=U?JC-S1:KW&;Z0!"P\YS" &X3HY\:;FXE4JVSP[2OZ
M44G,;I]?^'FN[O-ED(7\U#^)O. J\')9.>AP$G#_Z(:[>0;2GO I)9N[Q[6+
MV'M/V[]\)5NWMZU6Q^[\ZR-WLA.R7N'L:3O/^54<7J%9*^%>D!TSQ/-L?A'P
MB'V";\(=JH;S:5/C@=5A75R;9/WW7N&:-(Y6LP5;6JSY436.Q]C9?_V= ;4#
M]>M<%88XYAZ(,N%Q'GGID>]S%P_*Q36;X1,_/#JL/)<J7 L.LP* MTZ<>!K4
M/4M@'W9H^CAH6@'FUJ%DY]$0\0?&LXVSG._V\QGW<ZWVU=W./O7.;@29MEN#
M]B/)"^<L&LM ^R *IOGTAT>*E;1I#3:A09=@MR9" I@V:+8?C3'8[=:.?#PS
M8[";[=:C[:<]VNWGL^^G/5H/HS^X9HFGP\^.IK,PGG-^D<7NM],96FTW>_-*
MTR_4J:7KV#J._<#]--DSN]E\]OQH^_P@)FQ":(=!+TO >[!0M:-!]PQO#EGT
MA4TEVOP[ASF?4,YQ<,7Q7KME=S<31;01SEB!E %N7<>+4.QKSO0Y!VDGP+K&
MA)M?HR!+SR^^RG.]V\='(P&W OHE8$_G7AQAASDOBWFLUSC\XV#-TPFGV\RI
MZFC-CE-M,:=Z7)I3[:>UPXV7KE8LM"'>;>E+#Y)[J*UAM_4O2[+<"/I113:
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
M!]FG/6J!V,Y=.)A.51C@GCWT>R#IMGO=;J_M,[_=&O9&(-O[(V_DCS9SD<!
M0&;M>;8/\CALI<,[K@]"N^^SD3_HC;9BD=U6SQWR89\YH"KS]FCD#_N@:;4Z
M[;;;&K2J$L_+7&2KV[='W9;OC3I^E[4[S/7;?=_U!PX#WN+;E44Z(SX:PE9W
M@39UF=\;M0>^#UC 6D"=>7]P_T6^H56F<9ZX/!4_)YQY9$ST@JOW?_@)_FVE
MV1R'A)=X<\*#\21[:P51D 4L?+=7?L:/(U@OFP;A_*WUE\M@RE/K"[^VSN,I
MB_[RSJ+[:? ?_M:R6[/LG85&Q"8+@W'TU@JY#U?<.(R3M]:?6O3/.PN^8%GP
M/\NB#[DA2P$@'\[/CL_8F/]*T]U3\RV>DQ,RQ\> .IXL?N$^D^[BI.G"M82$
M$X?>.YHD?7N2J$\[A#)OK2B.^#M+_&HZ<9;%4QAH=F-1.0C+"9G[3=_/XME;
MJUN]J: .,+LIYN_3/_ J/#-.XCSRFM5;=<N?LF0<1$V$]EN+Y5FL+R7B*W0-
MT(-V]OW7+R>71Q^MB\N#RZ,+A1;/#>V+H\.OYR>7)T<7UL&7C];1/PY_/?CR
MRY%U>/KY\\G%Q<GIEZ>:8GO9%']C0#>B<19'#>OC_N&^U6[UNJ-5IO5[GF:!
M/X<Q?G*2-P*SGGTY/Z4S%I6.N7QCJ-]8_HF]]\>GYY\M)*IP&LA2'KA6Q-#U
MX_'@[<?8S=$DC1&Q>V34)?K(O%[+&? V]X? SEF7>:/>T 'RW^T,7'< >H1T
M0P"1K T"V'MOMYI_([I6?!=H!:YE@63<$]J"6M&5($*GU%NK*8!1.F#BTO=L
M"=+)O?>O/K/DFW4:\=>ER5'1&-CY,(0UN8!O/^\!@\+?,^9YZO=#J?-UX&43
M_-'Z\RJD6M(P.9.W5NO=GJ+7'R_.CC\%:7:)\]744OZ'_O@I2][KWXKB9YZ:
MNYH*@?.*)QE&C:OI -74LTG&SJM6P\+_O7X(H.]$TH,HREDH2O88R.K:HS[P
M;.:#6M1U'! ^W&Z;,\=SW1;S6Z.[D=6B!@K9SWL! #KE[ELGCD.'A6&<.?'-
MWOO__M-HT.V_6T3GS%L!<H+2UT)N86?WS/'*1^![,;F6N!Q\^?+UX)-U?G1V
M>GYIG7T]O_AZ\.72NCRU@-!? C6W[(YU>F[9O5?>:^OTV+K\]<@R>("F_P>'
MEWC;'G6Z\I@8JRC!Z0]T(2EA(O U.D_O'TH3'H,"+P72<9Q8V81;?I#"!EIS
MSA*+ ^7Q[J:K9^2\/1)A*P;.=ES7=IR6XS'N=_M=F_5=Q^.VX_7;KMT=M.Z'
MLV\]&+TYA3<F.(6FQ^9-G&631WOO/W)7^,4[=L/"UQ?1^)GA&R>K<H0=T7UR
MHDOA$@$EPU0)[Q $*QMPE@U $;+;+:?M].$"ZW%GX+8[G4<BO-UM)+R7YP=?
M+DZ(PKYXXBN.QQJ$KUNI<:81TQ(A,J3D6__2_\!.&[^^4^A\+ )XBSS?6D&>
MKX7(83R=!BE&/ &+ OH8Y4COWTII^[__9/=;[Y:>\R,*4CJ&][[0:\;Y]OQ!
MUQ_ZHQY(4]TN,"EOR :NWW-:H X,NJMH :UFV[;;]ETLYQDV0U*_Z5CJ^#_O
M#0=[@@7\O-?I ?%*$Q<(TY2-><O>_WTVWK-8"(_)/$'-9I2)8#A $X$D/3
M_")+S_V7<TS_/&@YMV[R.1\#3X)CDV'\G;'17>;R/G?:S&Z-NAYW1J-NN]^Q
M^8BU6&O0]E?8:*)G2(<NCPY__7+ZZ?07I% G7PZ?4]H Y>WH!A9(D+!BWTHT
M!"R66NF,8]$%D.."R JRU'(G+($/O]Y <40*&P"1D,U2>$;]]4!)Y>$R27>X
MW_WS$K9:L;7)"5AM95:[C<T^,@(,E]I3;C\D)Y$;)R#HD &:,J8/18&!P]@S
MSTS?M8=]/N*NW1]V[6%GZ P]/F"C06O8[0X=YP'"3XI?FR7Q%<Y)B.XANV88
ME5=[AI8Q^:5;U]D?CI9LW9[B$ZN-U!WL#^PMQH)+=G,BXYU=PH0%YMAWO8[=
M:7D#;]CJ#CT;!-6ASSNLV_>!FMKN*LRQW[2[O7Y_V+KG!E>DN,<YO$^[*4":
MZ7!9(,W%(,XEUN]Y$J1>0('92*L#\R#28\F81<%_Z/?KS3X"3P[+D_WS_8M]
M2W8W3JPR\EI?XOV[(+8FG+H72->_.8(F+1EM+2#8!FIXX'D)3U/YGT]!Q&V#
M$K9 Z>>LU?,[[6%WV'9&3LL=^J I=-L8UKF"+>O]:<2M7]D4D-8ZI&56"6*C
M!")KN>%MV83;);O%J.N.;,?I^>UNSV-.M]<;.4['!CG8\[FWPH3A7R/KMTF0
M17QN'5#)DH9UD0= T#H?%B:_XG0/X<_3Y#*^CDP^,^Q[?J?3;K=\D"N8[WBC
M-NL.^EW6Z[J\NX*1Y;V [.. E(CV:7(&4@H0:%,@&@Z=SL"V7<9YI^NVVL/^
MJ#^"_[5!;6QWAJLH$8>7+T?2D91DBX[W60P":/B_P:PBZ0Y!"P2UT.Z/G$X7
MZW_XWM!UW(X/>^WZ[54P$$G$\(<4<B1L4:"9)7!B@AD++7[#7>J$"Y>!1_-T
M)\Z4H09(:"$6WE-HN:<Y\X=4W\5\-EU266[^?;64F"'[/$@XJY OYO4]A[4&
MMC>RNUZO/VH-VJ-.>]!J>ZS?LE>Q8K8Q"[9,O%XOYY>?8@#LV22.%BVJ_L#K
M =T<M?O]/N:AC=S>D#.,K@!5TEW)T#;LC9J@,3Z=RK@<89X8'6#O"POF?_]I
MV+8'[U+KDH=\AL"V!+0;UDF$7<GAI%B(#4] 1U9<-VS?<?M!ZRX:IDL+)D^X
M9\WR),W1E)G%%CQ!BI[=?N6\1F:#'I(#-WM[#TO[CDR:C+6W/QK4X/TT\+QP
M,:KPT6CEPY'D,LA",G)SYDZ$(_JA4D5[OU\G0,FUWU.P:+?WV^V7!<F$$?FX
MF$^!Z;QZN'1F[P_K1*J'P;$SV._T7Q0<OTBO"R$DOW$G+!K#A<BZG@1PI2!E
M:^-==YSB>T+D$:,K)$6?VVV'SJT9SC9R?6?0'?;[/:_;8UV'CUS/!RF .T,0
M7+JKZ-'Q=!JCCSEVOS6L&4NL*Q;FW/JOUG[+1F^Y1=4/'DO9?DIR\7Q;)JF"
M( JF?#GR.U[+'PYZG4Z7=[TA[-*@T^NT!IYG<YNMXCP]>#S+QU/2G.<_/T>2
MJE0<VNUVF[%.IV?W^:C;=FQGV.-^B[.69[=Z;+3*&?IR</'QX'^JNV+]$L8.
M:/ 8$\RSYY0JURQ%CDM2I/4%!.Q'"=O^;MO 2>2A5X-;SMQR)]S]AH%'WZQ
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
MD>\?C!*VMY 0M@$?SY)XAG/BVT[XMDD [+PHNM<!-/O$QRQ$L[?+*7_JQ<J
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
M].1,-!5=Y;VGZH.5J/:ED79$'Q<_]H"0\ L105@W6A$+ $3$MO],\^C_69N
MXPRC7WE61#=JRT*ZS+1 8XBPPX(YA_,GHP:'RMGU(.O?A*M  5KLB@52&JL4
MUHB,RGRU)04"M+-D6.B6"B)KGYTVZZ*G@FHN .EVBV7**D_"2Z.XAK"Z+OBZ
M3:>/X?A0Q3#TD+AZ(_Q-3]A@/^AEQXD2=I,5(Q)9Y+KJ,_&%2HEFK#U)M(ZI
MXF/25<,BX5=%2Q)Z[(E!D20\IG#$I"AYUS#B/,HQDT8E/W3$*1FLF(,!"F4D
MKQ0Z4I.4U9&$25QH[M(:7,Q;=5ZA=$"9+R."7D5/:.V"C$-3I"Z"($H!$D;8
MA RZ*/(8&SK.0L%;%81)J&BICKK4<2^JNE.IW+2Q?+-5<*-B4R/,R$3C#4^5
MDIDW##="G:O=#-(P"EF% KTGP4PZ,;0735B-1,FM2O=B#+C4_N44W;FYC.LN
MFU<:FE^J!"T.  ?X"'>X[A-:3LD5K*N(,R>!VT413$PICX)_YYS8:L7DMAXW
MWNI)OP7[*!VFPP2CN]$8\D?3_2&#EU/%O H41/? __)HEHN(J O / P!H_+2
M&$7YUSC,0%,1I[Z!=09!\/C(HR@ (=BLP ZZD!N'S*$OP'<N/UI8NL: ]P4E
MEC>LCR HP4+D;S4UZY7*KCW\?"C*V(K9OFY0+*"L5' H3A%]&88*QD$Y4E#0
MR,N8I74$1ZE DK0+4FZ$RRSVX"0GH*1PDMX3B9,E-IM.'H398LDB.+D!!O_"
MP2CI<\LKR ACI3N!02,12:2/,J%[-(YUPHH9V%8RC\,DA>'2,%3+0U_B-A&5
MY)4E2&7HI(RX\HKZ.J@HFS9/O4IB?FJPK BE%\=%*M&R0GEI^459&Q4?>%M5
MFX6CH"3??8J_-8VKRM*MBMC1DAMX&7\7/K,:*J3@HX,J*4!]9J"!'JX$0"/F
M5!EKE:\8ZW)7@G=4V(T";FJJ7@Y%4##O"J1$D,(QL4HJQ:6('6ER5CM^N,0K
ML(QZ%+,GM=_E4:I"AU@MQB22S8'0PV^ 8*0X"Q$\IMPC[5;'UBFE9BA1*5!9
M!.RG$V'6H2!H&3&O(:Z_*4IS)ZH-5:80FB^9(GQ,U9Q4IG3!@V0T#A*XQ2.@
M8GV-#RL&+<J^&5DA%*;BQIXL>RDA5[A\+"_FHI$6R- ZK,Q,)BK@*>1F53F3
M8'\MM5:!&0*)L6*Z1";-<*P#4-P:MT "3[28_#5W;N\$D'"?0E:ET"_#JW&Y
MDM1I#X6F)^F2KTKS%0F=!MH1^IIGP"BY(6,#RKLV-4).[L3@)^'"Y<3Q%9CO
MT0QYHJQGWY",4,JOH)-0-'&,6H N:+YPIE7 =VG<#R?_./UT^J4Z<B5X39K;
MZ(T+H-?6Y\"E,,)4OVCL!\D!9*F&[_\'6$[3.OSP63VYI+6*DI25/[)$@6GK
MTB62NB&0XT=#"J*D^JOHBZ4L-A47AAB(&:;"E&4$%Q8OCK&- -[R@TSZHJ1.
M))F' +HL\D>94HI+F;6I:"S9MY/4A'R]"+4LT\UZ)4,=E=KO!C-1E,8O)PNJ
MP-2&]?=/EU(%+>6#FC5I2^FR.KE,C_%:1KX9>*:RLK469J@J?SW\;/U"[6M,
M+/K"(HS_OE$H*0PNUI%T0..+%V<'HK,#YDD3Y3."_ 2YJS*TJG>;<J:(SBP
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
MA<-$S/R 24E,2F)?2J*!DU9C%US*C30WW+XI<" KEQ8M"%Z=4P/BVH/,+,2
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
MZ&+ &+GF??9MVJ:8R@;GK+W]%)[&J]LYKC$/0 S5_"9=P*&KL6X-=VF!GSD
M3QML"=MG:DMY>// P*I\^7"1>Q$>W3_*D:5K;/Z((Y1[;Y; *TJ\<NHIC ,*
M>4E]$MRS8.+C=$C5 (O,G@'Z-!7A5K3%"890:LEADML/>A&,U5*PC>S;+ ^5
MD9"-2$@RXR0PE3GXET61AO LVCI*ZY#V"G_ >(;6/G#ZF3#K$"] F!*PZB)<
MN2-ZQ6!K>M<\*$Y<";8N7D8X)C6&-QI%,L?'%E67>7-5(@/DA5#2G0R@$)-'
MA.10HS(C&;5A%DIENU(O58;#"-.F7?!.LMU,4K11LD7^.%+2T"L%"0B @@@E
MJIOU>=5IZ:,4?_G"0D5K&)X;+9WP+II9PCY6RJ!*$N?=E>C5D#T&[ZJX#GZ=
M$RST>+?/#4+EK]Q!FM<*'9M\@/+]V"JW9[TWIE@Q.LE:'$YQP+LR:_'!C<^M
MMX01A9!17ZGW!'/%#%I3YV"U8.Z+U.- A!5&?(MN7DW88UB&47FX_BB+CL<^
MQTB-08ZIKU/N9_6OXL(F@GN]KCOPT/"/4M10$8(3WL.FX,E?P]@C994YG3Y4
M$"@304,*I "9["$6X'/!&5@AN12>DOYHJ#I"+Y$UEVD)^L@.[1K/O*=?)9FL
M=I!'7ES-=-Q2Y@$?DFLJLVNF;$ZR GPP^#L%.-8-\3GTRO%#;$ TA-Y_<9 #
MF]H)GDD0HK#$/K-%8./%7Z.9]3B"-AX!-:8AC4=<22RL#A%_6]:*YE==@0+0
MX%"[K>IW'M4T_+R\^U@$'HX1K2J .OYPD%^,>\ XI'C#"F@U_(XL2<)$K I7
M>G?33'WD?M'M]2H4<:45L$+TM?0UA!EGD1^#O]RT,A;?T@X/K+MF/*[$=O(_
M,%K4-8)"S1X0.+A=NZIJ.H@\7?RKKB;7(")HYKS".V#V^A<=9:*0@Y0<)\1E
M"R%7![ &PS F&  /##C]HP,COUO30G0^*1P'^ACFP/?&,^!WD78EGIU9>IUB
MHP=Z7*39S.&0?0@>?N@5DO9+LVJ\"J:,36OR-Q3-;BFJ8^]P416'4?;.YA._
M_]Y#%\XD+?=#_DY!H$*;GZ0F- *8^%BE/=>J/>32S=#X)HM MRILP1I3K'5
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
MZV6IG#;7%F;1@R;4+?8YH^Q3AYF]72,W.&9A'F&)4?2WK[4<;D&@<APQPP,
M<^2ACNE5)H!)87<[9']MV'V![\FGW"8GII-0$TL!4*SE[+?W^ KBX=F,CR6<
MNEX)= Q"1W,H%:3DKDNR=]RCB!WV?MRKJ/9-J:6\"4,UF3<FH6C^TJ\:#$!H
MH;0!PUWP\5##;>AI1KJDVS&J&@5+(GD+5+=?]LZ1RFHDD0%R"4;^SC)#<#QO
MX13<<,?<UU+LBP:%$CX(5LV:RN^X;D_U_Y*[DLW5A/;6;Y5V+45+QNV <J?X
MAEOJN!^Y3#R2URT5(Y1L4LCBWIH(363N>L*H_*;_0/WJ+@.:[M%A5=K#S.<@
M G%SNEPP>X_6>Y!WYG0+"M+DA3WP/M\+IN!<TF&57+JMKQ?:!I%AK2&6RH-M
MDH =K#6G=^(?F]:)J$5=FBCT_6)<Q .02B.JAB8KP;UW\-%&60?0N@P<TV:D
MFF@:8U[2M%4<:/6P>G'_K L!+Q^]AA>A'=[Z5$B,[1  ^M 0Z18:"XWUJH;E
M!B/D6; J'CW!-J@\AK;F>0JX9H^-#A)HUF]VQ15^(NIW!C$K@LWKF^D5R&VA
MO24/.!1C"&#V,.^, [\Q@Z1#P!TOC4#"F%0XWGZ$2\>5HXI,MP83QW-?Y %%
M?$<>'Y[)*J-OD$G-'_=3CJ$F]B\6<[.];/(T1G*[[E+$C76NGZ2\M]-!R[JD
MCD H)4JB6\CTG#?IVA_V5(HJV( >[TUEIMO0.3X.WB6GL!<_I_,8LOD<UF:Z
M2"_,:_1$NV90SYE_HD83D\'.$'XLGW?$UB=^ JY^W7@(]8'FT/C,LY P1]4H
M?G144+W"XLDBTDQOOOM1&J;,/!(V9[A"B9.8=\UBT)L_;)=5"S(T:4G9/;&(
MU)R7:K?4N8Z7Q;KBK3:2C;-">Y;!^W0N^^^O40\6[AZ*"MVQP;$N*;$^!T=(
M5Z99Y#\_9HPMDVG"&QKT3<KK?__BZ OZ>8/1%/GY\5%O#M5'L6.[!H5;CD3%
M);HL(\'XLH_V?OOVI^]_@*7Y!<<;!7NCN.\?<$IU' N6C_RES?KQ9(S[?O'-
M7^;UG_K?^,N?VNPQ3YE1.3K8ICK!MMH0<,/ER<F+KQ_QM!0V?OQILW$9ZCU6
M=MO##[#<^N2P:5:;UWT(S7 ,54[N6Y0_T"_KT>WX _P%-^N;20X?(D'_G'(X
M<,,76"77DLZ*$(LB5S^Z1IH5:6TJR8@N#93I/PG]-FM(:1$8C:D1+W->H=TX
M2?<DW7N1;N9.R&8WX-H%Q>JX(=.3PDH3^X+#5D20HU&\=\P\1MSDU 52U:;:
M?Y+324[W(J>136D5)@'=U>FU! URC,12,3M'N3%QR[%P1@=#T$H*)DND>Y/>
M>N96A4@2[N?;68-X"]C<14'E290G4=Z/*&,=0=2'( 9":LT#*^5(H8U%5+V8
MN<]2AAHZ"@9P5-'_5<I@0TO[X4<79?SQOYURB<2Q&'.6?0,Y7TO8%E2D-*<
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
MOI@RJ?^BF=3[?(N*(#LS-X>?T8'\%+<=(EJFU[6C"U<<2;6W%C76WRH8(0=
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
M#8RMP$>9.N?/,%M.S)XB!LKT8L=9(VR^!\,.B/.-(Y0K+ES$_A*!<A(1H%H
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
MC,LXP82R+JN3ER!!J523]ZZ@G6E*ZKL8E)N)2HFXNSG#F\Y"]/,W.%"D#,+
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
ME_C:#*!$(+G=O DT X1:M>Y*Q4 ?CLW=2.-Y%"5]2@FWXIHA_DJJ6Q&J51G
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
M<$Q#GGU^&O+!$_@1#C81?()V^=83*']VRO/OH$?2S:: 58$G/4,WP AD2$"
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
M><J^T[/P F_,O>\!K1?_F;+DNT/_))(E!?Z3GXZ"H69M,"<)-$VJ%C0M5ZA
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
MSJ\V$D>(UBZAOF%_,)6A1^P/!HB%C$#$B$Y]<7T#*G;+/!WS)6]<>&X:P-Z
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
ML3_(BH^U8VFUM&>YU&.(:]U%.;[A3K*&C&OM3NI<[_T%Z+"LTOL<HVGP:[-
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
MT?GP]7\O/QZW^@9#@%5#CAU\Z1CD\7:,QJWMYL$7=+\CR[KEJ?-=]C<B <#
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
MFAYS$3K+P-K(G<DF"$P/+Y+(-6J!%0JQV3F0G7,)^"KU?*2>5YC,%4]XT;
M5LAA#1[UL"=ZU0(4T:AO%CA:XF@V&YI.4.F,G.N"9>QGP,&PE4HR>NA@DS5B
M(]-)*OQ-)YWBK#:K*W$=?^30F1_%0(2].A#5)G3R(DIR=,Q10NQ$4?LJCJ91
MP@*G]<[Y%&3G?9ET2C(;=)"/?A0=5QA]*:B8U@EN9,3!2,8@5<E4(LZ./,O2
M[W.^1+J;GHJVDO7&T>=<^C#K?01,U5LQ8+DN3U(2\<'L3%,#04#I(]%NY,;N
M"D_6YUKFQ+$-S/#'/"OWIV-^_)P:[F5)QN^<I^)Z$(.$U)LI6PIS15.%$;/2
M+P%RH%@]\A'4$T^,82:M=M,90FSB4*1B8LMIX&9$:HO5N:"IB,]WL";4R?E$
M2O0H-&2-B\600(B%)SH%M9GY$(5T!8<PGN;[,E":90]F8#2BZD&65AC60-D
M\8.D $.&)4OJRNQDH8JJ"EJ(OC!D8Z$64/[$+-Y658)BI71@%O!8V2$\;UZZ
M4"5.LOO* .V.!@060-C+(V<,+!1+%H?P8D2)O (V9AS!J ANZ--9M,)7*.('
M$CP;N]?PZI)-LK9F("=GGA]2HXF&7R D"M$/P@@QB8 R$#V:#Q)L4<5#R32=
M)N_>OE45(2GWQHU;+P$Y'#1@0F]OM;%X.XR\&543''MC<5]6UB1","X)C#]A
M DX:P5 8S'FJBX&6"]\H%H?L./0M1XT#XM&-,$?M9N>-<];K'Y^<-9OJE7]P
MH=72O//%6TXVMDIJSLZ LO"R2QB=^7<BF\M$X8@)<O2 GB5$I8%Q:PN!$ NS
ME(JKD52)G8,;=']$Q7+:'1GZ<_WI SYMK/T+2X;LGTZ,1]P;/O5MM6S(7JND
M5:M5OZA]]1KTTE"B;J'ZS9BO%I,NQ)/*<!?#G>JPLIPBQ4CN>C:98'E>+@ C
MH2_^\JL!]B-@')QS@10 1I$J4R[ ?(*3^G\0[1Q_"H?58>M5E'+"U8;MRER4
M^?UMBN\UX:+07:OZ'.E?BU."IYW_!:,Z2YPK'A-9P>JZ)9&FCFUSZT2G9DR:
M5F$^O,+.8--&L6V-8KV,8GN/C:*^J>'K?0AJ,O:G&$-\D#OU]SSD>$<(1KGT
M/<G\[_E:UV\2'<38+<%/4@K8:F9<K_,9@163$L*2Y9!1I@'"&#\^H?!XX^T:
M$)&+G#/HM2H/W6<R9_J,8]E1@7+5@N0Y2WP%)#=+MM;>[Y;<=[DVRZLJ7VF7
MB0T$ ;:MO-M>P9<PO4\RY0\7Z:QJ[+U1FB[8^84C[B4E/'<TC5]>B1.M5U6^
M0'RMIZ+.O^1\\6S&H;:FJO*9:DM;7N)#HN;A1=-1/"\U84LK@-9<E62O7A8>
M-6%=!<H!C-):J:AI,Y0D*HJSKOLQ&"KB.IW6W<=L:LZJO0:IY1'CH@)2^5VY
M@UAW*''*F74M/GG ).NGI"MW-C6N+/W'3C1,=\>>GVQL[#S>YL9&G=))ONO<
M4]E,FFQJ8'$/"QK^\B&WK60/R?A6-.\%:_M@8]K^!X4+?'B\J0$9D [BH4T-
MIQ0;,?^\EZK>5KM?E'9[F_?E3N:$-S5VMD_+'5QL:GAY982Z@EQLWS9F5:IV
M)9MZP1'_H<["MD%YZCE6K?O!;!(Z50%@C6U#59IB<]N<![1Q@;"?JC>K4WE1
M-(*\JG2!/,]^MVW";]GLY>W7YJWJ#KR'I9BE6&VLD$H"G71?EQ:Z?OCPZ=/%
M167#T@/YZ;*\BRIOQLS,.Z=/B?IVL]E31TF7(?H6/*W"_$QE9GE#5FV%@X4"
MI5K+";7E*+ 6DR@AFIQ7?XUY/46B,K<H2\2V+2=/XL=6;>8+D.#-2,I/NY(1
MJRY67:S!MQ)<QY"O-).U[6"OU=VG8&\7R3Y3RA[*^^U8^=>;WF9L0,L][77<
MD].S&EB!9T]*6RD^$"D^:W1;5H"M .^M )_T>F"$VX<GPS4(PK:6C,O8=Q.E
M+-B?F*LFF[ 'CV%KNTW;V,Q?2!"W5QF*EZ QAYT'K!F9ZAR=6LVLF6:^=%]6
M\TCXN3*5^L]'X]JMV]KA_,[F#F84!7!U8D(YZ+H8:FX>B@I(U4Q=G854_3YZ
M\'9SV> L-+JXJ1B2:X3\AU_FI)%!/S^4%TGC0V%6'Z>O\#:O[Y:P ;+I.YD-
M_D%W/43JVN9;+//,-7ACN9"XW[KE=IM-%U4&?M]VV_(?XD4& ?XZ"[F\8?S
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
M&M)9OQED$^I!%K]E#V95Z6;SI*S\H'6VAP:_LQF9UKWU[;Z[3FGFDNWM5K$
MA$R+;4A-NIEW<F;0SZ2W?T@'!GDA[V[(<%.<WGORD4&=S>#Z1_GXWY-.2^SW
M.J!T_?][W(E^^]$G^GMH=WN;"[0U[.?33>Z6 VVS":0N>\>:AMI&%VJGW<8N
MU)/3TU/^XZ[5O(=HF]I0MZQ=K<.KHE]0N'RB\S-+G/_EMU@L[\<D_YD.+JB@
MU$ 3X0D,X#I:N,MH_L0VT8*S6HSFLX"HO1\( Q=^#"8UUU#X@)1_N+QR?IO=
MCD&F/] A?Y5H2W/=IC"YV5]#LOMK27:)4#\!QD 4T[^@H/X)\M]#(>J>EC63
M('KXP=C]:W!Q K5N92W!:XF^<1:D<^<\22*\WQH4Y@(FZUS^W?E\5:8P!$_0
M$9G$WB9;3THT9 ,%DE*_3\5\ZZ$P.PNT3G%CW#I].^^T^MTS&6AU-=Y'N[L7
MWN !H6[#XIS?V&2(;D#8_DO87#0^-SXTR@3Z2W0G@QL2DN8ZN<KN(X%K2F1]
M;1] >_1F3=K,:^X#"'6AU35\0#-S H=T4%L9*3U1250^O[,N%D.[N?,PJ28J
MLK-T/NT NM1-6,CFM^MX?+LLDGFT%.>J>F3D3UW8(I)9I]6CV#SXG\]S=BN*
M$6K2&5YO<R\.L#KE(?\A'=U^CA _A^Z])\R]>14F=JZ@!22>3:+PUKGV><A
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
M>:AM.GIIV-4<;J^2'?9T[;".V^K)%W.?+^8H&BHFGBA<,*[?57RX%(-/0)"
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
MF,6+%VM^B869G>>1$B5=3;K:+5U=;J&5WV0U)\Q<S\.L]KR%Q;"B5/48_%6
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
M?M(OP2"+_WW7'3Q=:WR=0L[;0)-P(X EG"+A"4!4:T*IPI@[P1D'J%5ZA<4
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
ME)V;U?C)/=Q))4_@MWWPLPYI:@&7@@JBN%>,.0"10M0 Q+AYI%UWE29]6]/
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
MHZE<'[-O\(J\2'N4USK8EKMSSO%AKL$QS4ANH [\"D' FHQ#&I,@$$YHNSS
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
M3P+DVJ&FDCG17PGRMR%&\7'P?'B!TAWV\<3*)=M"JGKVFTF&.9:"E]:?P\9
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
MVL>\[%M5F958 */I7FT<#"X6!3A6B]R5JLZC6H"J&J&N%E(_4[]$YQDN2CS
M,V&C%54VISJDOJ3C+^TAQ9]X5&L1>VZN@(H*W-=.=J#(#?*Q>82BS%%E1J>
M&9XW["XS6E^Y[:;5<FJ#S#B6S+"6_86/YLUA-?:Y&@N#H?N>[Q0[=L*G[/G6
M5VZ[::>3NH_W4_Z^B,2M<\]@):E%72 =>%1!AS*%%]%""U\VIE@+'H0[/(YI
MY.="%\T7RA6$=V)1*"QAI,ZX*6\3"GPMVI4<2)'E,,="=3A0=;$LVO WJ7=5
M]2J4K$JP/$55W,BH!G7\$L4W.KH*)8&K5(T<SZ)I48H#K(.F]*80*B*JY5:>
M8>UD-<(\N\D;U525SJ@/[6E51Q?@U0EBE3I5J0WP6(J="^KWFI?J.K\Z5(M5
MM]9K5(WYZQX2Y72N>AM4M?;?U@4M5Q</E<X[T')F2&HI*V&OE3#\:U&H;&61
MD?*@B4Q@ZJJ>L"(L5D;IDM#RE!W:*6Z+QYN[[]#65VZ[*5K9H5LVXZ*-X:.E
MR'+2=W?*=@H4._%3*-OZRFTW;3C+/;@\F@O3)9W:?LIRMKYR:YC)WA+1O&)C
MP><3<2DO%)C]IK#L0UZ8Y)7L9F$REQ<:-Z_QC[9$!.H0%E,9.+$=$<]WDM C
M)* ^=Q,:N.$^,OTYYC=(+_*EG9"0,@J$C1+J"N)SAX@'*<Z#-]Y]Z;[WM?;#
M?@ZR[9YA?0"@::_CL/4NYTFAZ=9W;KUKXSNW;]L.>_TQ?0CW>:IGP^F]1X9B
M'G!H-U18AP'',AD?<4CY6C7CJ,OX*F.B5&>C@-IEW1/B6SJ[;YHBE2_7Z-0[
MQ;H;)0Q; O _/5YM>%)/@QWV;)>=_K0DE$Y9*)L37[9OV@X[?5_E])YXJF/_
MY]$Z)3FX3TIR>-KRJ970VY:)R<2 B^ICAW]/L=!J];<^\,KD3'W_3==EV^%$
M:UNC[P7N+=Q7-:3@6=M%!_OZH_^:<0QCP)OP<#2>)J]'_4T4*HI0#41__+-E
M9EP?/G=KK>]1G%D9J#.^TZ"  ,B]_^>-T_<!!EL':-:K&I]95$L%XO1H5X36
M74&G39?DJKNWR2_[:IW]Q 2/-[_\CSKC]/Y!<ZEE,=28T!-8X>&&.2ASK%F?
M-HY19]R;&^^P&W%')CF$LKB:M?[#1U1=\GF)_5Y_W.MR]W3GNT_?^=TV^5-/
M): WXI7LQX'1GIG1O%?": <$?J/\A<%_M):=N;AX__[#A[857KZR?M67=,ZG
MKKG)*AIA \\TRU3)7&F"1 ]XH38N]\,>6RCHM!)0536SR<ARO6BIT]"1]=O=
M>7OC=#KRPYY6_\_/M<1-ZJD3!S69XAZ2J;UE>Q6S.*^\/Q_RXE?LJ"KGDX>'
ML4RPHM')77(_#AFQN>22R$1$"1&APS@EOBN"L*63N_>PD[O3[.1^YM6-W+VE
M1N[8Q/V,Y\IKAM]]\TL81 \ZN1^:&?:T9?:! $?7209,&S"M5V0Z#*8Y+!#$
MB3U!B$NHZ\#VBJ0GG# *>.#&XB&FN?O#-,]W!DSKD?K;%QWWG%<IV9BJ=E,5
M\3%][.KB%CU0=T\&]/OD4=Z(NWT$U\]8W[Z$ZRW@VM0/'>%P:CM^P!E@*FB(
M1,:A9%RRT.?>+NDK'5!5IM\%/_NW*')<L\AUG)]/ U1/204<]OFPS^M];I/8
M=@0G#,P_0F-&HSC&D*N, R^."6NQ ^M]OD>+,+"#5[_1C^06;/5V]M]7^*O
M(X^H2/5 5=J1AJ=M6B_'"6"*)D:PO)+]G75'4WEK!+YOQO0/^["F?R\ IBZE
M;,H&X@GF<VE[GDV(%TB0#G82A:['PP23:@ZC SZ0#6Y,3D,V/!)9=TWE. (+
M/8S!#Y@Z8.J J?O'5!IYU 95FP=V2*(@B#TO<AR/,L<+1!+P(^G;3A0/F-H[
M3'TF"X"T)WT\;TJ R'BOD@':B':R@J="8 [8-1%=&."%Q\MZ2J[#Q,W\@)$D
M\#P>@(IA.VZ4A&Y$_"CT(NI&K"5NMD?MGH0GJMUW H#G]/L."#8@V+.3ZS (
M%D0N2Z3THT &Q,:BTA$ATO<B.Z#"M>60S?0<"+:BSJI__@!7< V?ZY!9IW*;
M^^N0;#VU1_(.0^TR0?\Y#A4^=:J=ZJ:YP98J$!^S;P N>7&_OLD$8$U,$P?K
M.+@D\OW8HV#$AZZ 7PF-6^!F7TTF]GIFZ_#M*2I:IJ*L&TTTKJDR0>5,G4RF
MNH<-X+]8] 7& HH ;/1&J)09+-Z'E2IUXS=U\%(56GRKT0>K)^F*2*W?LA**
M!3>!Q41=M:@4DXGIZ8,ED\R1:E6W"3M4@N0I=!^BNK^PZF>Q>(#.Y%%=<FZG
M$Z%[V^$9\+S$BD;8X :/NJL3X/K#1C''>8DS4VE B^J)TI1$K(G !:P)K^;X
MKIJ$KJ9H*D"-5&\.Q;:J[I( $767E4O%/T=8_3,#*5J6,+<1YB$50JJZ58OY
MY$F9PQ29T$;X=_PVMDZ&;:9;_<!@6Y?@T14BGKK[.U50<\-](7D+TFT&NGJ^
M:Y'G<Y%/08K??YY@/]F,8\.;*=8%6X]$412&=BA%(EA($IM203CC;F*[;AS[
MWN.;@CUA03H5S')7RU<=[BQB1PS[@#E)I@!=#6+-BRLHAHA0;=9?Q11V7VHH
M62YJ-\Q+T\G*<% )*($C.5,U(V[%;)S#7OQ6=<BLM^>\%* 26Y/TFRBKEURW
M?T/J=CQYK@ .7MZ-]_ZAGO<;/*Z9->($'%@O=ES,&O%XQ ).P\#Q. U $+9X
ML16S_7/M6][=7]]/Q?GWM/SG-8RX_!6P!C[_.RQ+^7=U/GA)"3\K!?N)SPLL
MZE&*[,TO$@BB6R>N @]V[F986-B4P!75*_=,DI@X=A2Y7L@=!K_ZB>O8GO##
MV):4A4&;3K S2?Y>S:#Y^2YDP?)[:Z@BYP78/EA,D"I/JP0!>##BN'Z<^$+@
M=A>$A3+B@H8QL Z7!%B)/H4X'ZJ)8"\B-8T5$OWS"\UN#"'3++V=WSZ-H\R6
M!?&Y5_;A+MBK88RI6$ELQX('Q".4T8@$(DJ.1B'Z?5<*;6 N5:H;%*(Y]O@M
M<SF[HX;1#L5A"?&Y'8!"GC@NX22F?NSR,$PH=T,G2MIR%7:FWX69R969R,-=
MV(W%=*NT5A+NF;L"U\=>6[%P?9O8J"G$L1>$B2>%[P7,.1YU=F>O$IM4ME.G
MDGR_83WP,<@(K+%4@+@T;261UVZQ/R0VAZZE:#G&)I-%5745JZ&:W\V.GE2E
MQO'C53F*E990W%?OOE"*?Z.N$A853PNM(=]2+.Z>J:I,IM@_9OFK^OMIIDJN
M\J;XKJV($B<#(RC DBB6-8Q"W,)4>-7,4M3OUF5357-0QN:W<WV5-U6/NN:3
M^E9V;V%I6-6=+P?U/JTJO:)Z<I,AU5H5&#,+ZPYF\>?-CKSF?0T^#%U)8CL
M]O(9\:F,A!3"<SFP(_68W89RNV<4^;7'+MCBL;/?/HQ^*])TFU42<MOV@P1V
MDD<$#RGQ7-MW ]!PF<-DBQ+^B)C^[K-RWGH/9P7:\40IGYF%-%2SQ-=B$]@2
M2X6!F)O<;ZFMNRK\GFJZ=2H Z\9'M!0:YMT6]U7310X 4BC/ZQBUSN(FS<YF
M^;1RG)HKE?=5OZFJ#/7NR^</G^F-> >&]==S^+'HY==X0[.VTX-;/^0Y8-J;
MR@QMWK[R35A,@%_UE@V5'1[E,MI0 31Z3-% L+?.'&?9H&XAQ!1F<98@K<ZH
MA,'^9-')';TOUQ"T6;-]7%0/,3&29MW.EB54?G)3,+!96FML)J,R4E;=<RT9
M*N:C-W_9,*V-Z_LW03FN[V(JRH]!+5 C #G^]/'3K^__>WUMIMV6H>&ZX^)[
MO0YT==#-.G_[J?G7J8RPMZVF[V\"I*-0BL*&KL%>$@0)AQ^^!W))^E%LNS81
MGI L"62XBUS:6JR7"[![_, +. >U/HY)P%Q!DA!459 7P6JQWM[Y030-F_V"
MC5:!4DGK3LJ!JNO>*]5'E>L_O[JP(N*.+-/X7#_'M#ZOVZ&;;U4=T4>F0'S=
M&'VBUE$U.:+3*39<-YS(L9R^ZM$(1O)([QF@%?H\S)A 6Q$I5O4WI>:5BH=Z
M+9TUOI4T_*J+%N^HD]V-A;H;G<^Y\5(K31$L&*&ZKRL9:M'J^7S1Y#BY-]_'
MT6._';C'##%E>H?4W0K*^DWZ\96Z9?Q&6C&KQVFF#^M8CZ'N*%0YD'!AJCF;
M:>+488U6'$[P4'A+K2DW5&,S%ME"LK?6N9F8ZI8P*?-JN8P^C'R W9C4>W)Y
M!BIU4UDUCZX:R=^KEV#K:3-4TV&Z&LP- /E,#1#F[+AF_J;1="%N:,&5;UZ/
M.RU6Z+QD,SQXN.,^:%E=U PN-"47X8.J\=+-/.5UY=4'Y#$O_"A5]PBM>Q<"
M3"2NGPX8\4W<8T.*%(NA:<[2A7&UE:(:-^23T3++S10=4.TW))!5=?*W^*Z*
MW;!C4BY*Q;+Z32W#P,9)6UZRF-?16G-[G0H]>YN++F^%WPZ8[3Y'U'3_Y.Y4
M;=?;7#IU*^4ZD'NUN^PA120VJ)F82LJBF*&Y/%5&5=64CJ?:U_"-IA,5!E/=
MWRII9\VG"+,\G^H^*2@M06RE"(U*OCQXE,(0Y:(X4Z!482S<.:;?EET4=<.8
M4O>D,1WHJD\Q1)=G9_HO=,/E&7YWI#ZY$Q9/N8(%-<%UXREUG8+;!.6#CC4N
M'J6A.KM'E,(^-6:P1^393L6"O8W%@K>S7P>>W5?FR#-#1*>T&6]CE]KME.M
M[M6VIH>&"%2X4.W*'^Y,N7 DXC;!@+EJ4CX3EDJ>TDYR@RT+M[B&D0?JJ=FZ
M" 78'JF6^:JC)/8%/9O=3Y=08K475BI5.ZRB0&>L>A62%UM$U:J8AA)A,.NR
MWMA*73$@H^K.&Z7]RP/-KE2M1"OE'@?=U/IK72]=& "F^>;%AFZC1^3S3ME3
MWL;VO=M9M@.?!R\#5CIE<'D;.U]NIUP'<N_4!6]/L*(V%2+&8E-A; 'L.MRS
MN%>4087B67TC:_:=U>95!3UZ5RMU K?B9'4/KCPW3R;8:@/)B7U1Z5?S!,,?
MIF<JHD&JTA?J2(3ZUEMM6IG1+8]?O;WQWBHMR=BT)O<+](M;S#M2X(1(L&R#
MKECH>MQUHUW]G7J,M2V[H,$Q<:13<I*WL;WC=A[MP-C1R\"13JE'WL9>?;M2
M[AB0\-L&?]!V;TYC!QB7Q'EIW:ITRJ;V;O%<60482$VY I;T%DP6ACV183-J
M#P%&>T'QKYQO"]]5.BMUNV;<?Z#J)'E1Z,8V>#,ZPNJ<)WTEEPM_E;)B&H^W
M[O+YA&MMIVH@GIM'ZADO.CI77K%JRK1N$(IC&RFE1[7E1"4+6V_F#:K4>)%F
MC1OK7I@B^Y86>:9Z<QK:U5I1%3-] '>8-8F:4EFY4S(,J*B,K:9.I28'Y (-
MK-;S%GU!=W!J7U8ZHF*/+]63U%_7\)SFJ6/)B..#PN42F]@RB4.7A)[#W,"Q
M/1FLS8[HE-8 )J(*VS\ZI^'1TQ+<9X%K^RQA-DD(C;TX<&,_2*(PX;1JK[-Q
M6H](=UF?K3&RROS6^(K1:UW9X]KZ5Y8T#$)D2S%_\5T4+"T;PJL0F;C#%N7F
M-O2J:LF,.;F85<P*H>/YF+)5L5*;Q*V]PWQ%WNM\WSR;:,=T]:H[860R+7/L
M:GM?6R9+36^K,1]3E'8*%GL;>G<^>Y[O7_.<(SG/,_X1L#*[P?:VYVK=-IPY
M\"4GQ*-<"DIHQ).$,.H%MN.X/J?N/D)4=A3RR >R1I$#1'4 )>R TM .>1PX
M =_H8-UA13JL(['['A:K%E/MM<5RFGU8<<SF)[_Y93FLIH(HAN>J@P<ZN%8'
MEE2<0"=Y&"<@"-+Y9%8=83 :@EHC#)XT1YFNCO*M J1*F-/J)GQ.K5\_N&D1
MFP-Z4N-2J.R&Q7D&%>HIR_FM1IJW0*/6$*'GVV>N7;D+*JJ.C)N@PC-FXDOU
M?%(=X5BD>R5SE5I8SI-_*>]F;AI_Z^$)';@!<B%T8B *&'DRT:G!JC$X!M2^
M*8N(L7FA0R1IP>:WY4RWU0;Z@_2H'*\<PTL@X]5+81!H7WT5"EWA26IH67,$
M*G94-@ZL@+1#J8/10_B.IO>9-G56!K[(.U7&$BT*9?+5*[2RQEQ(;$HHSC!9
MO&71E1Z5&0H8!0KN'*&CJ'9+?=/&U"H-ZGDK*BS/4*64W8+&IA2<1(BL3GD;
MF7<JO2^]U2]MRL1*_9O/TDG= U'+*)AW'>\J<.54\W8\F@*RC:KPIX3]D!=*
MW"[<7E5,5:]0??Q%J96&]/B2JYF86DYUTD4_;\%DRPO1%N56^8'HX6<J&& B
MA[@^2#..T;:WUC^4;P^_VASVH@W]J+F5 "Q+T,,+E60HOL&XS/S-HBCWX<JJ
MH-J![\1-@+PW 876I"?>4E;D+4W>\>00!R UZ?&WM/@J%B^GYCO5PAB2Z<1&
M3.?58^&P*=D,MY&.11L]W]Q5QR6KIS3,AEKS;UN ]@V0UM##EPBVP!S55K[>
M3164%0)/8>'8,-L.8_S8:7/2-$R @JC(+=()JBP$I38UD4Y5IPU_!CB@Y1C[
M>MZAX820HPFF8 ]#X@+'T#:JQ5L-S:NWOK4^&$:N5D%%C8!.L*LJ$ "=[P:-
MG<5FTI52FC0S9^%@^B;_X2%\YD4+,( F^!/80B ^,'A>^:2;2Z]23U-MG-4=
M1QL'V^"QAAH8.U?'V1HN;2VIRI^7WJ%AM3Z"!^_)=!3<^,^KL5>2P&"82>V=
MH4EY<U][OM 2Q%2"2GHNORL3-X;!*M;/&T;?#/1P7FKO=?,N+I@RKV&$U2ZA
M4Z4'_%N+S"95\(Q<DN=?S>DXZX/"8FL=%B^G+"OF*81B>I-\L%A60P MK)!E
M@)%A\F^M<UQ/;='+[6^3<R7V%N]49F>S&Y]*&'UD9NB&5IQ;E<L.&NG&&/0.
MNF47C=0Y"9?982G7*6. '*]']9M?SMO9>50'T6H99+!U<^;W>I/M8[TQFZ=Y
M*+=C.R#4M6T2<B^!GWX8,1X&D>>&NQP0?WQE"N6QR.:WM<<BRQ_D@QM^VX3_
M30DR1E1@6GG3AYD?2-;Z47@J +1N5$:P$S: RQA,G"IA"U%I166M_?GXV4()
M6H=$&O'4=[7*:L3;,CJJ81A1)?BC_11/=%:03FD)Y)B)+4-F^W-FMKM#9ON)
M9K9O=^M]06-H+CX4^>T%)E4"Y/X.>O<%;& P*HKUKCV?, ""B,:QPXA/'.K3
MB+IA$GA1X,2B[73L8UU[TH>O2BF9%T@B(CL"6<1H&+F<$19S]B37'NF4'41(
MWUU[9D&;OK1UZ>^%^>J:_/?K? KL$MC!3Y9Y:.7+P!!ZQ2TF*[EBF$4&<?M#
MX7%@9RZ9Y(T(/GIST B[34L]+)WI"Z^I<I^9>8_R*%5IQQ3##+"2\#64["J]
M2!3?\'!XY7@RM[VUKDS00\GVY3E47RJK)",57<MN)J(Y7D.$Q:B5P8U9]\I<
M73RS>L@MV(TJ+;]]TJ7U@XIK8B*!"G$HE6'QF"HN \!""Z[.) .%L*_ :.64
MLHK68&JVRI?"V,F/=?"T?F#M V@X8W4E&9T0#]N\.APJP*Y?4'83"4Q^]B(W
MHJR9"V<SPA6AI0[&KE_Z$GXK9;I5 ]K=?MN.(!U@YVE62*=D+?(LI:X>;;]M
MIUP'<F],?]V!<%W('1P1Y:_'HGTO-HR]I2RB)3<G[E/M[UO*1$#;)E&IGNEL
MHM,?Q7<3!%#N)@.=A7+V:JPL#5@:]J@ALW)U:R15*-,X]K$\ZLPD$7RC1:I\
MRDN#!<":PTC1V%%?!QR;:>>C.MD+PQ"ED4RS>9%I=[&&55H562R74CI6_*<F
M9P+@O7T VFHNQRI1(UE.#UV9494_I@:J7?M(*^.4Q"^;J$_M2E0&8I4A6E7#
M6?JJPGD3:M%#7?DZ%U. <)4AJP>44>V&K.):;9.J%NC_:Y]R6FZ:9K5P<E1]
M:"A;RXE_S?F-]O/K: 0L6H*OJ9RZ*IBRY',TOE.4  46%,-30?J(?_I-U()A
M7L<5&C(>V!9# ,I\WV.\?CO&= "FC8GB.T!,%V#:):?SZ57SGE5(M K(;3=M
M3&;>@:I=UN*8R70?4($""_A?>8&'#HW^:K92%?%1^][4Y,##H" ^$"UU?'P"
MO^(7YK>X>4VPIQ#3"36YJU-:S%; M=;H%NJ<]G-5YUBG>:KA%D!8-&.BK0*M
MH2"JDT;EV!P?,/"F[/^&^IM/JD]0JR_U$3\CM[2&VE3M=0#"2"88SA9E4\XG
M$N!F434$C2.,?6%U102T2K4N\\E\9JI1:(<@V 0YOJWR2\)" F+K\,K(>O_Y
MX\7[3]=?SG\;:7 4F:)X=:,.*9F0+U-'%I7)D^-+ "W!/IOF6=D(;*JG8P3X
MQJ0F8!@8UQ>G>(OC4N<TU*0- <I)/JMJB%437 Q,PW@52<034D6J% RI7"W-
MV=?'IRHF@UO!T-2%8>KH=G,=3!AQ8:W4CV@9R)(!4]^A3V[,Q$U1F2)<8%C(
MQ,WNRYFXK>43QH3@1\8T_6![;&3$4INO;6,P\WHXEE7&3;,2S.W)PO11/#:I
M\SWP-(IB.7.2NF;1-MZNWKJ9NZLY(1#D<W5^Q9AY]U41G]$ZV;ZT\Y1_K@HM
MHU/\+B^^XG=,+="&S]Q@B%)B#(CHAZ%R]G"(H\7IWI4I&GMUEPV,.VS]IJW'
M>$3=H-6"V';3QM,>.TB6+O)HEU(S)ZX;M"I-VV[:>$!A!ZIV6 O_F!F G]>X
ME93PJEPJ)K,>140JE[==H6K4&PLJ$9F0F!9/57YME6V$(#%Z<*?9YN6BT)BJ
M%=;(>4F$+E2,^U^E4A750RI,6/Y&G0M1OP.C>2AN)P!!F;8@Y@:CJZCHPDNH
M(FS502.3)K^,G.@9!$T'Y I(/H6/#QUG]R/KW>7?SO]HL4D^YR:O;2&I=,*4
M29D!^W6<J?21<C[%5!U=5F%>E8.6Z(^LG9'X95CTF_N%5O:P]-KB-.8/B^0H
MB7G<K9[\&<S[)\PQOY0?X$M_7SSJ'R"K+NH*SY>R*G;WL2&^FMVS0S\ACI0Q
M]Q(2^4D2QZ[G)C3BD2=%LDOW["T9]F>M&?;-R1M>Y"@Y%^Y8)707M:I!K!CJ
M-E6:QJ1^7+BVEX^=U'N EMOWP&9]MCY'UAQ^[4E9?B^PFTI/K]\_,HE4(,FG
M\ZKR2:EJ7:^(SN83EV5GB^K5/.[1Y%W-S0L.1E]*V:"O.94WSE7F3OV]^C!.
M;:";="U]?&>>E*Q(=9ZCSL2L:X+0KVI3YRH^WDC,75+WU(7F0]K4E672-<92
M62!J1,T]WN(&WTTS>O"J6L'2+]G'HBTOU_$$9ZN%N^VFC4?-=A"!703G:20J
M;:=<!W+'3R)WI^PF_YC93;^C\8/>4U&GG>LLFVR]G9XU0WZ-,@#+?HK9_11%
ML,J*-1AN/*XZCWF"KUCJFK#B=ZW1=)&"W8X86,G+A,CJ"%G[V-\NY8;CR\L-
M'HFRJ99H^U,U; ! 2LLQ@O*:B6A_.2IL1J'2"D6%0.KD@LZ\-QFI69UFJNZO
MYIV6*BZLZ5K]I2*"5068C;/%MZM$93#!U1SJB,6Z@;_%@,(RN==]54\18]F@
M9JT1^2N>JYH/*$<V%G6.^")EJ[+6JP3FXZ%#JTFQ-51I/PD>.N5X^=Z+0&.G
M511MO>M)Z25^I_02_YCI)1_R!QD0]4E>54W.%*TS1>96XF[Z7'>IZ[BHY(54
MJ7JET:WOJ_HKYA!-B2>*3031!,Q,'K<!$*5C59D%QM#$>!D 3YZ8;(Q:$4W+
MMB$><0\[G5('G"?E#OB=<@?\8Y87VB51<TC=/%[JIC>D;IYHZN838*)3SHN_
MT66] [!U@4-O2R'D7].2WMP40BN9E]+D(5YC0*TM*340S"?2];ET ^+ [!CC
MD>=0&<J82N?1/>Y:YN1[(6&N< ,9QH0&-(*YV+Y'/4%]01.RJ23R'IN.+_.?
M.9"]3"Y=P$T1;.<BJ'NOA.!WRG/P-_KL=V"K+LRX,9]C^[)WX)5C6M]HC<H<
M/7_J!*=*%.(+?L$JRXN, G2_&H,)*_2-3#0@$6 *?E,'QQ,\4LP%V-V@.X[S
MNT:VTLCD-HW0U:D.KH-!.L_,\>PZ>Z%NWV$2"_!D<'4LU9PM5.=RM3.X/NAH
MSDM7'K\KI7ZJ-Y1*DBF[<T:_FX)=IJR-Z4!B7O8H17'_6Z)3NHF_T1NW W-W
MV1(;TVJV<W>'+=$3BW/_B]XIINMO] GNL'Q=%GVC(K!]_3HLNK)Z-20Q=)1-
M*58)_3]OT&Z'OTT+:/VWUN28G*GOO^G*(=9:N5QKGDLZJM%PS=! QUVT(J^U
MR#]@)^QBH55NZ(Z]I4WZ:M-KMUO7^^8FT!MA_QW=]S+41_3GWFG4]MIA@Q6Y
MML^\JN6J)M#29GZ#>;<O$?T_8#%9[U7LZL%!TF=JQ'[LU?W#<O?U0^^I'==Y
MCWI[/>V'MN6*V?B#\MSGH-9DO/QQV8Y_?5O:/<D=_8],5;*YP@+:Y2O9PCWB
MP=?&;A\SDR2%B; #N[T$=JL&V%..N\YGKX;3#JB;&%,C(/_1ZO"^N'C__L.'
MQVDK)D:"?_QDA6_=Z?XTF _M.8T'8P.5T;F>#RH[K95V.%?7)J!$>Q'\\/VG
MZ&Q'8>N-T]F!%?:TR'\^BJK9LLQF_O$SSW]S::4M93/>?S=YN^<JW43P:_J]
MD6D;N3)*I)/8(:&$VDYLVYR[+'*D)R*_<A5M"%-@CVM,]KDLKO0VU"W385^:
MOZ_K76FZ62L5%-->_BKR&\"X,:Z&NNL?5UWJ-K5T\B6CT'G8HOB9A,/!0>%@
M*LJ ? /RO5CDHXX=,#].@E@"\@'4Q:Y+ SL)7<]/1.6P/A+R+9E+537]O4#A
MR(O< 0D')!R0<$#"-4C(@I@+*NV$)X+X80B;AS$O3AQ7^F["^/Z1<$_8%HQ@
M& .X/9=_H"].@,^75Q:=P^B4_.R![7\RB/X< ^V$O:<-L&%DBR0B;F3'$9$^
M283@7#I1DL0.%U5SV$<#[.>\/*_9_CSC[VB&AQV/9F9[(R_H(_R>N-8XH,>
M'DWT( &QO<!-G$!0 K]&/ P<'CDVLZ7/@Z[J65?TV)>I*M/O@I_]6Q0Y\D7D
M.L[/ Y8,6#)@R2&QQ!&N9U/*H\@-21@D-/$#P:3C2\]Q@RHU=[]8,B@;O;;B
M3B#*>U'7N3,5[GI@X[UXWUY?IC/XZIH +D$;3"BGON,)PIA''1%R^(,ES.$N
MVUX9J1W ]0X#Y/ZKVE_'B]2Z(]\=XA-#?**_:S9@V+XQC ?48:%#G(3[1$B6
M@$KJ^M1G21+RT.WJ#GLLAATLYAJ.(C<8,&W M-ZNV8!I>X^A$B])(BI%DOC$
M)7%L<^(';FC'TK6=I*MAW8II^T$IUQYY)!I@ZMGL[B>? CN@Q7V-Y>;.V<RZ
MJNI'_A569-H#N_N9CT<\E;>7ST[ X,VYB3T=Y3L^GC_A,,@IP#KG7D!=R4,[
M))$34B*C. X=7[C"#ZOR>8^&]6M3S;':76IS'<WH=D=1Y/40^/M]7FN JP&N
M^@Y7H'F"46TG- QM0EV><(^$3$1>[#$647%4N#J8?1W$?0P$#>@UH-> 7D\Z
MD1%[421\XMB4D,CW$^I&H>L+VXMDR&G71)<-Z+6OT+0?D@&1GLMN)CBM0P2Q
MG6"_-C4>4+<R,=.%BGMH2Z^A9%\\COL0 A5F\GR.-;ZZ\\Y+.M?2;Q(=4N0$
M!)1)(9TP M4YX32BC-DLD9X;<M<A;+O(.4*:M3<":7@"\N6 \-%SO7@ S@$X
M^T>B@]:-L(,PX8$3,I$0S[83!L (8$J" +1UCSX%. _F.(A'4=S'LA #D Y
M.@!I?TET4*='%"64V[YOQR$A'HD#2GS& YLX7BSH]C(4^X%&XHV\Z!2<&/W
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
MT)2YG-TID35/2E:D4[TPU4LUB-=?HM/I! :GOC/:O!KPZP_P$%R4'ZV[>E%
M<'-@%B5'*]%@_:J%"EZ\QVXJHK6;"EB-=TLJ0_4JH.N?VVW_&?SU4YNU;YP!
M7^J'-4Q]3[@L"&V2N !<3AA'L2V2A-K2\VC"W>T-.#>9^GYMZ@?;W*!O']KY
M%L#/!*=7B(G:FJ!<X#*Q-JBABN,>]*0YIB1N57ZWWD6>)!A:&Z=MO2L\"4F\
MPS2Z3'YC [$=EJO+(ONUO^[3'#9DRE;<=6V[5JFUYQFOA-K]-:K"^+YWDYQ]
M?;,8M,U([$LOI)$3$T:3F!/&HRB($AHFG 4[[&$!^W2*& )RM&V&  A$4M_W
M$SQ1Y).8<CM$YZ"@4>P$Q#FBJO%)S!88\$,#!'YL,>H09F4^F>1WV$VMR9R+
MQ3A*A[U6E]76NS:ZK'9@NR[,&FQZYW9&Z, ]AW"2]:*M8J=>FN&3>FFZG7II
MNAM[:>ZT?D-;Q=ZTS.E]3Y_@5'OZ-!7,H;7/(;9)ET:'>TJ>?]BG\&6U'7R%
M/;A0PWTE^W1@M&=F-.^5,-KASU2$P?Z* .YI?=NB7Z/*0]J#<Q,O+3_MM2>?
M]3:S;*VKZI.87>CMT' OQWX<8IWY)'%#0F4$!J<3,D+@#_@G:7,O[R]_S+&#
M'B://7N>V !' QR]4C@*J.O0R.&,LH $"8MBES'7=^!Z2$74=IQWCW!$AK*B
MSZ9.]D=G;$3/>Z WG@P$]\E[VNMR_)L0\5.>L0>@2"(9"#<@W/9]8@<L\3@E
MV'K7MP,[D"T'3O>HHWE]+/=WXLK7L*=?_9Z.0<?Q*'%CA]C$\W@<Q=)-0OC)
M8&.W=M78HZ+C]O%H^,FK,#WSB#43-,^J?,@>:#0OWO3LRW1.SY3\X9&)DW7J
MU8>\J*Y]7J0CM[B[1.C'DH0AY81P5\2"!@$ZOV(\.QFZAW5W!:2'L+M^O=<
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
MH1E=NU]'>5YW=7H$BB%WSB!./=4ZPTAB!/JE]I+I$W%UYG'5SM;6W\EP]N0
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
M)2CS\.OD=>E5OS &;*%)_L$9U_\<DWIJH.XD99:#XD(<!8M*>L\R2B63&7;
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
M<$/"!VD97? YN<<4J!_B[ZT.E:Q/.Y\L!G[S3:J;['!6R&"J%/566.RHQEZ
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
M!XLM6;,.%H_O*:W@<EMGJ294>*,0HZ"H4TNUI(AFF64,@-:EM,V02C;R0'2
MV@'JB:]9!Z@-@/K\Z#[<)I64<NR-Y(;*+*6&2ZE2YK0EB KM2;J^N.YI>G$Y
M[4G9G>TZ2*/F'SJ/P,ER18?4&ZN^$_CK@+[K=0KQO>YKEPK+=,:YYBE%2@J2
M462$T0IYT)1;'YO;.0&6GHC[^M%UXV\] ?;-:.Q=OTN![2*?)ZGDET*BY.+I
M>"XFZFUJF',(.TI1AJ@2F?:(^50QFUE%-6NU;V17O;['V;>52?9T%?8. Y\&
M!A[8<]R @1OZCC. .T189KV6U/%, >@A >HQX&.FLX9#ONW!QYTU9'0B&O*)
M^X4[\.K :R<G;0W.:E E4X8YP@(KK"G/J$((91G5FBO$,KWUF8!'==,^Q>R!
M#J[:2><.KHZ2:5M#K:W2;!5AJ<B$<]93+IW S G!0 /+E*6D]=&G)Q[!/WW_
M8V-UWE:$&AZ2>7O3'[?5<7E4@C]6Z&VSHMCMG?6.$;K'G7;[O;%Q8Q:=E1N\
ML2;5%,F,2TLY)9J*#$F/4\U-*JDB6Q\I.0%O+$IECZ 3*<]X1.3ZYERYWX)4
M.+$Y[B8#VJM//5+6\AW$W[3(@]>,N%0:Q#'%E HP>["PR*;.",V?8I$'E)[S
M$W$^/[XL>"Q'T(FA6*>_?TOZ^R-D3,_PO8;= ,'6:4&D((+JC$J'&"(TI9QS
M+S/9=J_5DW?&=_#]E.'[Q.;X+2O:!\^1GL'S-E$'87EJE0A8[:DP1F%/TE1B
M)A6HY9ZT';^?>-2AG>C]2 $+NEM'R >&(IKW^)HV>_0T?$\[4K0=M@H,/K&C
MJ1ZX!W?@;(D9LL<9M=?"V*2SGD+>2408091::20V%@03[#'#B)!-#J$3#0KT
M".<]A,AI2J.=X*/E5L)I0>)CB,AFM&AI\Y#V$*AM7?&0Q,))G9F,*HJ]5LPS
M(C47F;<"V:8"3*?I:Q<G<Q*RP]>VX6NG<CX%C-RM[UVJ$=69]TJ &HHITUXQ
MHZW,LI1(C-1F 'DB14 (SWHL.Y$J(!U.M@TGVZ-F=7IH2]/B=^I9)PQ+)97,
M<IU2*IP65C#N%.BLADG1T+JY#1B\<^</>B*U](\-P$L.Y_C/=_") KWEE^\B
MS0(?](=351)M^9.")$N?1C[[! 3XDZ5&43"&1"H5S6PFK68,S".?.D6=-[3D
M-+@3&'>RZ5VDV&XKWJD<STB*E72.2J0%3\W_8^]=N]LVLK31[_D5..[.K&06
MI=3]XNXW:\F./>UYTXF/[4S/G"^]ZBIQ0A$:@(RM^?6G"@1)4(1X$T"",GJE
M90DD@*I=>S^U]ZY]$0AH"I!1#,S[<CUXY9:;6,"( A?^&A=ZOLC[ TV@=WS
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
MALDNSV##'_DDX-I(E9U'QNGXHNQ4MMJ2K&@I&2<S#EMCDDZS<O##^4%E<A>
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
MOVJN0B7J6@W'^23><QOUD'#[VK8V?WP9.S777[3S46DIVA$7VN@637-&THC
M;[/TMLY^>54\<4%ZEY=OK!Y44H8!51ISI(.)@Z0@3$% (79&4'^L@M5\O;;2
M4NKC_X]!"VVT0]H0@:0B'C%)C:2,(6\QAD$C.)(7#Z/UT/LE,8;CDGL*ZR5>
MB6]?LW(VJ)&+1NB'JY'R$#42@N.TMH;@H-'!G9M;/[23HGGU\U#IX6@X&08+
MZ['&U@QAXY&"5BE&$ =*,,.XTX1"Z['9Y;!I6V-KK#$!QC#FF D;/='0!,1F
MD'%I!/+L2(VM?UHWS<(]0>$)..J#@"8!2^_23&7!.AOZ\%T7K=2 @)//SHT+
MPR]BLU;YL(#0PJS+"VX?+0E=_!V^.\P"]X?'1;-1%7M8'A6L^)2 !$7 26%2
MOAV. T8/@Y)<;#NWL>GV'(M_G6:%LK$P*A?6Y/IK"S=>[-L=YV/G;;MGS;EC
M%^3CM.>&![67AVA3 ^KM[', SYVL03<\J,D]Q$^AT!XMNA_VR5YQ?!VW9_?B
M/&5^QM):C^0?=GANY0CHH'?L=^2[>!O;^K;MP?H/#RWK<+9+C;EK2+W[ =_N
M4>MGTYB[N!+](./)R^2BR*YK/M^NO>[=)Y(<=':2<WCW[M-)3+_NC:S[@=V[
MSP\IL_3SCDRQY_I7'[P[YS7QDJT,U^Q,]HAU>;H,]U0]F*KMZ!)=4QLJ9O72
M.'U89[;Q#:.UO>'I6]Q1Q;.GV#'5^",4"-LFLU T6C.TYH#0Y0V%9FY9Z4;J
M$!V3]W8;T!G&3^^AIQ]<#:D[<=-K?O+'PP;FD1/5@@%6>\$<QPIHXIW15D.#
M@#&("R[$8[$"[85;'$=86RN%U*@ ]Y#20\KY00J45L8L?J:U(!1["86W1 %/
MN-9<UG60/1A2_/"+LQ?_Z[(T\KE $/[E*T"4]M7!\]#YRLB.,]#Y3H/"[?DW
M-Q>Z/DLD6X]4(1I3[@WRAG/B*5!02.HAH )[!^1C45@-E;<&K96&; K).J0
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
M%@TZ#-W8=LM5N"\=.P7-.T;0?MVF_%F2KF$OI *0&J(\<)9(:B1WA N.*;<
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
MS+3]63'EHNYD.N[::5IO2[8E# VE2!2ER*Y=N+AZZH6-D!YAI*@@A''I#>(
M("L89,P].6-\?S\2ZCIRGAP>>S_2UR+[K8J^%P@):QE0,H@^=LIC#Q3U6!'@
M9%V'[)9TI<X?B/7NHEV#GM.[@D]-+&0\&JDN:BJ]]7@VUF-+9VOUT9.Q$G_5
M9X2U8L)QBC$B$D,!L ,<\_ TY*47QU:,T#.,"_J*=:8>A<X&A4X(0L);Z@6E
ME@A)"-6"8269A"B8:X3X&L=U[\[J8Y8>8^371>N)V'FBID'&:FIZS8*>&C%[
M*[,M@&M S9JQUKOQ6BO0]>Y"U:QVC86T2E.%)+&62^!=L$@!0)H8Y8X>Q(0
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
MTG(*D<*VKGO)>8(1'!#.OG8X.I$62AI/F/D:HB>[AMV50)C>:[!KR-!Y[@J
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
M"?"@%&Z(M]BEM0$*0Z6'H^'D_N]J,LW"OX]')E# 3-B^G(>42,N%!09P*[!
M#"N\2TS@ML@$RK757'F,9+!_G1$::@I0F*4VW"I_Q,B$VY(<10&U(M'T-O#-
M?4P_A?PO^</<MF14TG$8 Q@R%W-M9\$-)\MZ@P=EA$*RZ3!^^P(=L*JG#5EX
MTGS[X(/^A'?9Q6)/S;:=0[^5D@;G>P;<OG-/B"Z= (:5HOVI7A\PWK& \8TJ
MXSQ^_*=8;^W+Y--G-_K#_3V\X:8:4FXP#UHBITXJ00P'*JB-P#KNL30&T9I2
M,\UFD, N.D'.Y "DP,CZC78G=&Q0*0]\P4[=/Z:I4,K#6&95_PAC*76/[%I_
M!P9)_._[[G3Y>G1\G<>R&,[YZ7.ZD@Y'.5&,Q7*5Q"@BN4046\B#(<&@)*U"
M&,)=/& Y5_4N,B,")*C&6(0?E&YDR38TO:(Y5N",^<&NLZ4+X:YDP=.K@;5$
MZHQ&V-+HFM+:]N.PKH!>M9*U-\8(*KP'F&CJI5/>:X2M$ P:55<YM$F%#=$=
M^LMTDPV[!X!/T-V:PKO(@<GP]FX:D:XH9>SR2:_)]9I<2Z#V6V5G??/%A*]>
MW<:_JKVB)0Z2"X@.ABAQSBC(%=/2(,F8,[A=A&/K+3U.#V_GH<[5=O3JKHZW
M=C)T:M3;AU[=P,9X6%TV[%L!GP[H79WP&9X-M?:)L%I >;5MAV<2:F@DLHH
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
M?>2/2433QQ6)#3,DKQ"@K"EI)2H=AG)8I7ONR0GCP8LB8O/!"IUCA+<Q< 8
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
M#[#CFGSNOF37>2:WC7^/"!30/PN H'L/F<],IJ5R$=%M:PZ))^Q_$1DKV"W
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
M2H=S<Z7>EBM=?!N] I[QL7\HX5'WD2;^AINI7O:OX=7,K48&.SK:.SH:#A>
MR+7O[8/+0;7)MDP$RP<X%M]/#B>J EE#GP\F+R_>'I^_.SZY4!>G)S^?O_[E
M]4]GI^_4V?G)Z[=O7K\]OCC]8710N#C<TA]@F_%$C^YCDL>'GWN6/Q%P7P'U
MQ)1]YW$8?J V/Z@?J'<-=38Y!O/>_!/945'RRWS_W& ZUROS[(X0&07%GQL,
M%]BM[JYP\.DOB3KY\77B]"%R0&>H.&&$I]K\V6'S%YOZ,OLFX)[^[^G)OR[.
M_GUZ5^3[BO *I/0VV+E%;-W2]C$>?>+S#)YK!OCC[19DU2=L50341:53LU&_
M@DT/)OOGDDWWL'L207>7U3>!I0^//P4L;I1#-^WZ9(E%)*XAXFONC'?;S4=F
MS@.R<^YBSOELQB=D$M_&L+JK[35J\Y(9"68[)>IZL'RL31M:ICRD-_ES,X<!
M==N4_E+%D_ UMOF>41WYP!X.OW6?W:<7#V9EMJ$/RV:5PX?_ U!+ P04
M" !SBWA:[3PD2Z4A  "&C0  %@   &5F,C P,SDP,SA?97@Q,"TQ,BYH=&WM
M/=ERVT:V[[?J_D-?IF8B5D&R%MNQ)<=5LJPDGIJ17;9F<E^;0)/L& 0X6"1S
MOG[.UHUN )0EQY:35/P@DR#0R^FS;WBV;%;Y\__]'Z6>+8W.Z!-\;FR3F^?/
M'O#_<O'_=G?5WVUJBMIDJBF/U8NJU%EELX51/]A"%ZG5N7I7YFUCRZ).U*LB
MW>-GZ=_+,FU7IFA46AG=P!AM;8M%.,J;MZ_G-C?J\-'>T=[!WJ/#IX^#Y\_*
M]::RBV6C#IX^?:1VU>'^X:/P\=U=WLD#V<JS69EMU&R1EGE9?3_Y9D[_)JIN
M-KGY?C(OBV9WKE<VWQRK;R_MRM3JPERKM^5*%]^>*/J]MO\QQ^I@?]V<J,9\
M:'9U;A?%L<K-'*[0R,?JFWWZ=S*A^6D-F;UR<.L^(I0K593U4F>P /DP433F
M]Q, ;6,JO[ZEP<T>JX?K#X.9U$RG[Q=5V1;9;O^G<)D\Y(E:Z6IABUU<];'2
M;5/Z2Q5/PM=F9949&*LH"R.[&6R!O[I%AI/14 *W:UG\K,PS&.G\P]+.+)S<
M_M[!X;,'P_&>/YM5X:616\:FE/U-GC]KG[\[_]?YV].+LW-U^N/;\_-_G%]<
M/GO0/O^,L_W2UHV=;P3$MLA@]F-U^!T@Q^3YY=+6ZIVY,A50@E&GB\H80O>=
M9FG4Q'^?3!7<2.L&&K!%4RI=JW*N\+:C9W6[=E/#4(U-=>ZFIUF;<GVB<EN8
M78<?!Q&JUBN=YP22*GOV $9[_M=O#AX#6D3_R9=,;W#FTW8!.T-Z.DS4;*-T
MD:F9::Z-*0+Z4\]PFHAZ>J?\L\USJU?J;WOJI?F!X% _>X!W/D]@4-@L -9F
M+;"):]LLE5:5J2U $>"ELPR^$"">[ ,<*[U>V@*(OJV:1/VD5W!;HLXNU?[C
M1P=/!*CG'TP*W.;*3*8)K?JC2[R$5=6G::,N3;HL@'(6%L@>.%59K<L*V5*W
MX'#O+TVNKW5EE+L16)S;Q$K;'#E9L(77A9$UJS,ZZD0='AT\53\O;5.8C3J]
M,D5K$G7T(MA;610FA1-OFVB39^5JK8O-9+HGIW9: ^LDW &< 5SRJ)6HZ $%
M["7/@;O4)=R;YFT&8(8+=3L#J%M=X=8%\>29!'$1OZ<  T"W$ 25^7=K88-[
M7X"BB(!?75R^??WRGV>7KUY?W _E/ME[0K1[X$![V8$"J90@;-0,)96<; 84
MGI=K..\$#KYHYSIMVHJ.'_ /F.I[T^ W_K1;KTUJYS95M9.+<A1XSQJ> ]P
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
M4S?"A2,TF3HUNS(Y*0F$F*2PL,!!#Q<, $!D]UFX[8D7 3GS^HG: 2F1H?.
M'5YO6Q".!T?9[I$L"Z=^UZWU_(/XOC 0 2L[>'KTD#SO>H5&1S8E:'?W]W#<
M&WMBBQF&V=S.&P)[2E&G1_M_F;HGFQ)MZJ)%8L)KJ XYAYTFSRE@:.,=%X'&
M&&Y\F_)XGRIUYOT9E^+M0R"<HS8PXMMPMY0#DTAV$/@3!^;J7"0QFQ0A>ZM
MMZV\]87WD7,E$;4=5R0&R9"\(G<RJ3U:B7X&*Q#][,23$P;(%D7$YH,5.B\'
M;V-@V0-SS4U?[6+;$Y57YEEK3?MGY8U)INY&]K[D#@Z]58!*U3E^$I(EZ&,O
MR(H,0.W92@@!4N/JV\!M.[".!2-V3E%&(K@PX +B#%:<L2O!\6$ )-J/*/+2
M<FW&]H(F,/I0:3] ? F&QI=E)5_6H!=CP&;>%LY)43D_D@?:S6.$^[]I./,!
M2-G6;,)LUYV]E*/CZFOZ )87");,H$.^-@X2H+\C(X7#)UNY1QTRV@BF]9X;
MW/CQE47N'''\FP^I63/_T2EZP,!( RV2A)S,Z,^RAB->6;A&=@/:521 D?!U
M 6HED27+E\+T8PI,6&?.4967Z3AI_?6;)X<'WYW4%*)+[1H=YKEFSV' ,W9<
MP 0=*MZX1;Q7?NB.03_:5[!P093(K 02('L?AO3/[;0%B6GV79CK[A><"Z2R
MJ0;@_Y;-]2ZL/O4.JL"D([ZOU8"!;C,*8X\$J'-D;M4<OF_S$=8Y,QP0[80Q
M*3\;$2%P"+%'02Y['Z2/S'ECLO(F9H_'@;;E^;*H=31WW9\^>JK3<?08S2"2
MO)P&.N^(;W?@RM6=SP_M'S@UF;7SU3&9Q10@*^JBP@ZG<D!S\>>^$WE\X /5
MKQI$@WE;T?)(RP!;LLS<X89R@X_UWZ!9@V3E@YLTP>$;EIYED:.9[MFIN'.[
M4T5'7QWQ"7:I)8YK%W!8H(+L/-V?8FI)[<P(]B.:#Q;T.7*_Q]X$QBS\82<,
M0 H]#;!KZI!)Y#,H:3,;BT@1*YFIT\K.@E0)#\@=,T7Y>L)2-G+^:YO7W@/)
MZI!=6 F+P*(R4MYWZJD75DM;X;:/@FUW\C7P/9Z00Y,\Y9$>W0N!KW5%GB)B
MNN)W9K4=\8M1_6C_HZDN?(Z2SD+KBC5[4V1.JY<M[&(^$%L*]Z#3283*>(WN
M'>\<SX>V_HZW/B&Y$$>>0J(*S&1 [+HW2.T&"75T(!&/"7L/]Y^>[A[L++VV
M?(F2L@69\]8L6O::PV$/5"(\2[H(TP_MX, 4Y+@K6$N9B5QDJ!A80F7AR==E
MFV/F%=S+P7.B532_0-1.'"8 :MFU)9(=1*[8W!C9&WHD;]C>5T@)N4.(MHO0
M^OPZBL_>H]WAXZBPB)^%29'2SX'B5[&%YC,1ZH]:&=?A8$GD1(DE[(C 3EC:
M P.$L5.RTEF[RS2[NP<6>V 0$?IN"72*RDV>1]*[DVA[3'&B6?3V@@CKDR#7
M.GT/*IEX>?@QRE"HFX%9$,H=L4G<=EA^>&5 LA9)Q-)*G6ME5;;PD$%)APR\
M+,PN&A+S)@+"B-+/8!0-3!<%#H"Y5:)\BI3X?*L".#?+L87(W(VN%@;&+HNV
M=@-TG@0Y!J^C=@?PJD#;'S_A/::H^:C?Y#I2NW?PT</]D_-79_3IX&1*D<S=
M*LY?**M0J,YMC3'ZC=%58+!U2GZ'6X&<0WOP%PDI4B3$:624\V-G+>/B>IV#
MR39J4?10.I@FB0>1)].R'I)9I\]C1@LJ]/A(+ZPU!EOV6*%-DTHL-^,$!?0J
MU4'\=R29C=-\,84^$T<C.QU)XD8+<=ZK#@RYOJ;9R'E%4> __?]_"/__41P:
M=O)DC+WOH6SY%:+E,PF0<:D1>3%8@(0LCH+6Q"I^-T+D9@DRPJU[.OR]2I#M
MJ[J3#/GVEM)CG*/'J;&_,>9^WQP](H@[,W=GUA=816 9 /;+4_Z0("FWC@-R
MSI6GP.QO) 9$P<$U6S4+H,_&NR='O!K#\QY#0(Z!$_3WU&G#L1_,W;GNKQ#
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
M]]E]>O9@5F8;^K!L5CE\^"]02P,$%     @ <XMX6GL1!HK4"   '",  !8
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
MNW)XZUS!QX(&@SGV$',$Z/BM?06"8:%)@B!32I !<NLM9H(J2KUN603:?2O
MV9*,;JS7'Z:I1U6(0^H1X>,E O__-1^R9MNRVYZ'\?4\[CE^Z 8=UK $=T,_
M:+-?/1\ZKYX/D<Y*D+ >%-&=^I^G@/P^HFB8X2F*M""P"$-L9:L@[DC<I"!Z
M-,6&&"6[)D'@,UBX0\QO.D\<>F=C_B.IG>>X_UU*!TTO<'C8:@K>]"RWPWS;
M#9IMU[,<SV&_/J7=UZ?TSCN?@H'%+L$0,:,].&7TU-"7N!TD*]I2T,N&>^X6
M/$Z4G$NL!>E/3,#?;*,OQU"\40#3[T\^Y UR4;=@(93 @KM@V*"(.Q%D9C>+
MB^<BPJ9%F4W1#FY%OUW>)M$Y[8/-@VO!%(12I2AX'TL4W"JIM8CW4'KB^G;P
M>J(\\[>FYM!HI>6V6VXC[##./,_E?J?9\%QLA3D+&RRT^?,%_?!5;UG@#YFX
M3_5]81T2@&=LC0;C\]'D^KQ;-&>'9/F(,'.CZ"IB%I]6G JHY#8_MBO]V7 \
M&,^ZA]7XD+#?[W>^/;]((HJ.V9Q_O^N[=IO[T!:W/I[7OWN2AD>SS+"=2P=8
MG&8B6,08ZSF)YC+>O'@4_*FP[;!X7^L_3QN>B_\ZEM6T6RU/N&&[B3M'WVNU
M6MSB'3OXQ;5A*+8^S-Y##[@->J*7]8_38WJ_\Q4^9?%<J/);W_W?CU"6HI+U
MGSRWX[P&<^\A^7,JVP%JJL6-B&%0AW-Q1:4C3AY=^<N0_P68[?..:W,6\);E
M>J'MMCN^U6P'3B/D3JME>;\VLPW\8^PWOH/;)O0E4O]BS'SVD@[2[Z7+E?%N
M1G];_W[$8S:G?=*56/I"_=GZ]HK!>-9R/RN1TFN9_!W+V8?)#TP#_STMO\YO
M>$(A_HG^/.\[#,Y/^P[#+G[EL^WQYJAW3-\6,0?%=V+^ U!+ P04    " !S
MBWA:B)N)/!XE  "RR   $P   &5F,C P,SDP,SA?97@Q.2YH=&WM76USVT:2
M_GY5]Q]PWKI=NXJ2 1 @ -M)E2PKB:H<224INWL?!YB!B#4(,  HF?GUU]TS
M PQ>:+W8ZZP3IBJ)"!*#F<;T^],];Y;-*O_^O__+LMXL!>/T%_S=9$TNOG_S
M4OY?7?R?@P/K?9:(HA;<:LI7UMNJ9+S*^(VP?L@*5B09RZVK,M\T65G4,^NT
M2 [EO?3/NS+9K$316$DE6 -C;.JLN#%'N;@\3[-<6*Y_.#]T#GTW6ACW'Y?K
M;97=+!O+B2+?.K!<V_7-VP\.Y$I>JJ6\B4N^M>*;I,S+ZKMG?TGIGV=6W6QS
M\=VSM"R:@Y2MLGS[ROK;=;82M74F[JS+<L6*O[VVZ/LZ^TV\LAQ[W;RV&O&Q
M.6!Y=E.\LG*1PA4:^97U%YO^>?U,/I]GMYIFR\HJRGK).#Q/_?',HB&^>P:4
M;$353F<I<&VO+&_]<32P%;/DPTU5;@I^,/S*G)4<\K6U8M5-5AS@)%]9;-.4
M[:5*/D1>B\N*"QBK* NA)M^;OOR@)V@^B(89#NH<VC[2B0AWIY83ESF'L4_^
M^=/IV]-K>'5O7@X?\/U?_^(L[-?C+Z:>/%CB QY]?7ET=G5T?&U=GQS_=';^
M_OS'TY,KZ_3L^/SRXOSRZ/KDW5>?TNG9U>F[DTL+IO;N].Q'Z^+\_>GQ_WWF
M-/ZUJ9LLW>Z8Q[/OW^!,>IM_,"OG\,U+O*Z>^I#_6KT/]S[AXA<@^=6)>LR7
M6B]=S H.K^&5-5^L=VU,V K+K :Q5&>P[:WKBG$40!=EGB5;ZWF#7_[U+Z'K
MP@SN70G=U-(+;G)>O[#657D+8]=6II[1J&?<;.!CGA7P55-:[[)*)$U9@8P\
M3U,0J55ML8);8K7.RZV 'Y4I3J^HCY*FDX#7(ED6P/TWF<!5)&6U+BN2I#!W
M\>"I'Y>K-2N&<Y]9K+;N1)[C_V&.)0Q966N8&LARJZPLH&[69+2VM*Q6\-1X
M"W0NV(T@J0[WQ,*J-_&_8&WXB>BIB2M8LK38_3M$+>*XO!45/.*"GJ_FJ&:,
MI.J( N(PAP=FMR+?/H($YO#U@!2'UA'G&2HQEN?;66\A;+W.,_D6I>JP5F(5
M"WR5DF+J([Y!ILB'XSK!Z]I:EIM:+&$*\FUK@B;P\ J70235=\%E.4FX9LR
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
M$ IAI\G<]U(W\/?2<(<T[&]9S0[ @0\5?*WE/Y1\*?(4V@LH:V,! @7<AEJ
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
M>2I92DS)TM4-($V6<Z%%S1=UFDJ30<Z%Z=Q<%BGH;&:"69EQJ1E(JSAH#F\
M]BE>-'?F%;@; #=PN$=%-'!9Y,<TBIC#W<AS^X/0HVSXXH#;WWK@"I+<ES0/
M=M\%U (Y/-:-YS)/(%91K'K@FF4E!YX MX:1=P&J4F<+,@-H(-#1 639 Y)K
MQ)@G2X.SX!(9=Y&BS(  X*L 4'8Y8^5AU*0DR=0<'[8!%WEJ,0&C@C!:$(IT
ME2H@>+<!4;.4;T6!5Y1^'J7<#1POI(-!WW-\$? XI#%U8ZAB TP@^R\-I?ZV
MH'3\R'Z_?Q-Z[O#0U#BL"Q*,/2I))-Q:R[XD5 L+*X")1 L"6R?"H#5)DR(Y
MDDTA%&,XQGLN#<N4*6$>!FFML@I?,ZV8X#!LR Y@APO 9P60T1U+:3X1!%/3
MZS(#"EM2!CMBUTYU U[=5;<2:[V\PC7R;P,K!LF&!ZC@A^)MO';R:.T$UD;5
MGSH!H, T?*6&6VM.WRZP798,8AH$$??Q%T:)& R# + >>OW8=?XXL /? OO[
M-^[ .7PV*.M)O.-T"?[;!>X[='=+ 'TN##  .\94<P/<=3$+9K0TFT_!W#,6
M )AZI2K!5:4&!A#L;J6Q416H1&[Y8$/C(1XW8[H6&;4(K-/9!Q1UZW@/#]N@
M+"%<@WA&99+;CJ<I8R.YI%JB3K)*S6WBD2/STF!N;-V:L8FTC<'*")"Q@#0
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
M=F>WX\WHZ-!^T<T'Y7?KOP!02P,$%     @ <XMX6C,$B\!+<0$ .+@!  L
M  !I;6%G93 Q+FIP9^R[=U14R[8OW(B @H (+4@440DMF0;) I(:R:')*"BA
MFYPS&TG2$B5)DW,&"4T&%6B2DD.3D9QSSJ]QGWW?N>?N<^][WS?&]]>W>M08
M:ZU:535GU5SS]YMS55^-7/T"W(7(R,L <'!P !'8'^!J'" %N(6/3X"/=XN
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
MDU(C>\[4?):2Y2Q,D(5'V9^"BDCBLS-K3@N:R!<0HR0A[3B%IJX;04Q>YJ#
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
M-ZBX5DA3CJMWPMWURWTZ4=8+TTC[T^R.[,R1]KDTH(_97JE&*M9WQH#61;<
MR3?9CC8"T8Y>GKIOO'L66XKF=5JZXAS=%9DZ3Z9*/5D&CU@Z?C![?X0+)#KA
M>_%Q@ E2NABMVGNDJ]9TM3;*..YI$#5#9+GW3]ZK1; 0\?;SRB!7<"OOZXY8
M,#/Q]I153YW!:(US_?D(SZ549]JVYF24G:%[NA\)&CKK5=H;$2/UD&X#$)+@
M51[Q&LE7$?7C+1.$['_8]%7W/5Q5R9F/XAGE$O*:QW=OZ"@%UWGU98B,WMTC
M^4H4-=;K1D-!;7LBE:M.9E&XH@^E4H@CAP]%:FO(V#_\'&[0G0VQ>\ 5T5^:
M41]?E$EE<:-GTMI+# Z\X/<KOD\Y0;:.3.SV^\H?AH+>A4<F*M!?+FZ;AM%>
M@JTQW?RE7</)SU<3WHDV7??-.])6QSNON?NV,[#5RWIW,@VR['?17@M[!IT:
M7+MZ6+T5:J)NRI<8FC(@91^9/ 8)&0<]+5/CZ+O]!9!T(PI"%CXTMV?.7 ?$
MN'$:5]7>.^YGO\77T'>;6U(LT@6L>-4F.R3$().;^C_'Y5[^H2G^;3":H3<.
MXW4?TDHC#_<),90/Z,MANQ,3<+A+N5VU $R"DDT/5P#:8\+&QC*6F;,P^7(C
M+RR 4<SX$#W#S19-%W"BZ)?O></3MTA($,5Y>2.O64<:>:/R0X*:N0 !_&G\
MU+E@*VMS4,KK^+9OHCVD3K**T(59 8=7OXK'*_6P\7T:N\!E\!SX"E%/;6AM
M^8&T!8[]L=^1'\;PGHN379Y(B!S/Y==O0<KC?O(J)\A%9V008\?\6[XS]567
M $[).F^5SA'\?S-5]!B/$1>I+#L;>73C]O]PZ[\\"H-FWEV&^A%D"LD@1>?6
MLH6RUP]<)_5UJCM80H8)!?$2BI([5VWN+*KE6)6[D<.C#3TMGW^R*U'Z/4RG
MO* _8+-A^K7N\JW,\ZP5A.UQ(+R4K /G3+OI(R'3I=;UJ6;"C_.Z>,QZ\7S=
M<V1SNP?@'YG;(9.Z2_LT45>WC'M_HFO2G!'3ZW<[?*VC M3T]M'R_8<;"%W6
M*$IR";GH@QRV0X^BA^L;!@?'$>_VQ:T]T+1\RS[AJLDT=CQF;_'T\W%CB0K!
MU)DR'X7I7H>>S.W .;#9"CGL"5(_:HDIV\LDHMV2X4/9_"U-<XS^08.MU[;O
M.[6B<V)B=++>G_]!26C1MJ3RULUMB[)MB6YBI,,<0D-8LA/+K>(E%5GD$]J/
M1WD^RG)^S&OY.I3LHC'BHG?3>=+PAQRV5'O6N\LTPJ!-P&0-9N/319)!G$_J
MC 2BM7,J$Z& [88@<X10S6)-^#Y-&1!>0]:>5?+:<FAPY+P=.&=6CO&ZONR1
M2.\]"RQ!IL'+HCP89__T]OTQ KM@3!HTJTROUQ92$JEDP?,;9A0EAG.KZJ';
MQKX[%"RQ^#"QQIL=DX>[(7@#:O@*E\F+@MA.W%[:%#6P._7),,)7VQBARZ0\
M[7":.%I=^(FS6PWE93UFG2H]7SZS3\,B5)'C L[/O#75CZ'BZ#&BY)CD)MH[
M;F:[V?TN-#>R21)!L[>:TEG1?7-W&MB?M2[-5Z7N9Q^IFG^9W<=0'WDIN>($
M-R#H"GIPGP9EH3K+)VMN,UAGW6&UZHA76J3;TFT4KE=]M0T*#3=6,.?L&* &
MP7:;@VK[S__LI7A:2YT4P5O8+K ,%5CITS0V*Y:3J*^S7PR/-Y\.A+E(LW:(
M:89C*UE:$G#6*6D)29%VO@63FJR^P]WX9Y][GCJ+WC'7%S<[O+NF*Z_/'&G+
M=^D#G,N3TW'[>B"HPX)AZ2C\X==%"\7%H350P8YLWQV]++D:;%IX$#Y]]M&#
M+*@1:XN9C\9H1AI8YC]&^P,_A4#/ 9R^9TK>XY7:T;7BF:XJDR[NQDE3F3TA
MS=7<E!Z+"O+#R<N#FK\J/S3P=-508T5/8NUE$IJJ\>(Q@-' 6S]=GC1%!)^K
M994*VQ,!;?$';HJT'9$#3K].]Q-&!_^$T?3JV.\!25TOY"WQI_QV@=_O3:A
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
MS I\]N(^C7&]1FL??HR:"BW!5P5V;'RP-3Z="+52XVAHKPC0IJG3&U*6RTT
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
MID;<$#P8#^8FFNS3Y.Y)= ;M70R^"*9-%+YFKZP5DI\;6;[<:-D$[U';?HM
M'O5O^<K45\*)</2Z[(^^2\4FHM(169$QYO7=OS0)W?B_>'O^:=#RX9GW7H]I
M;!*HUQ#]*LUTBZ59[>Q/:(K:/'&7A-0]ZMV/^'9A(YN/EK4 -<?N"JZ5DO\:
M(!X<6>:.H/\<E2B^[43ZW&7)RSI[_"I;*\@R(W*FPX*AS2UFO7BZRB)X;/4D
ME5H5SMC[_%$ \;+A[QCYAXB(*/@=G8K3FD+_:( BU??QUJ+IJ " *.6$>'*H
MV6&6?\$KOI)YEI9U&:6EX)#/A?^Z:4>- :;\7$2=%WX[= V%'5WPGHTH*G\2
M@H0?2(C?=PZA/\)()PX@*B1T>(/_J2*,O]@@Z^=.,8/0Q??L[[)9!YUS-!XZ
MO"6J,L35:\RU:^!W'DA^OT];_BR$\L,%<')M&DD-+2?K1PORQ(S+P4[9BB0]
M1N"L+8KI+#0T^2X,2LHY]$Y,QZ^\^HBGRQUE<H'O[".8FQ+A')5#]><Y0@&-
M[77Q!,ML;^H/I%!PE2QUB=>)#3?N'#J8O?_503N*S#D'/D;DL5C?/$< ;_(Q
M5W;5N5%")1>?WVEW?6!BY)U,2;3ETN*=DK@$N\/IE>N&?/^R8V6JJLON>RNG
MJ[J?G@[TY#DWPY$"?C(RPP=PME6>W@-Y9.6'HG5."#=A-HI1;6H@;P-YCG5=
MP5Q0\@5:3?J']GJ^W4?Z]"W0X>$%!V6TC__Q,=$2\*-.;>BYIA-B1Y)!4=*-
M\4@'QG6UV ?VJAS1R7!C=O&"ZN*E$/Z);[TIARV$#0"FA61[3>$1\Q!R$1"8
M";G^8\NA07?:3MVW\'VQP><WFW .KHWBXCJ_W*9V1P#=?]5!_@V$]FFR1,@2
MZXD_.Z)UU3VMH:[=A(,6:,/CS<R5[-GR=.S6D;4'1<V6=]^GQ8I;)NM_V'2Y
M\WFT\^':>[015BBBE%'4=(]->S4# J_&(^06".<Q>N9O\N**G#@\0=)N,JPH
MHEY@1=8B?%97^6KY%6/\,V6!H:L"\UZMXA'+\.>4NY'XGH6'O00 O7#E\#.^
M;&\YIH1/2B&)8]9UA-$J49':^P/!\3F^C(RJ*D)&'Q+;RD&D0B-<N>7 K8-#
MRGY2JK((,E/7"T4H)5QWHS;-=+QC#1Q(Y%;"V?#Z.K1GG&^%>CD%\4A>@?Z
MPA\G<\05VQT&Y;*\5NX6_[!/4\2ZX'+W].YL$=#G:H^GPMH?.W:'5IHL-7:
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
M#%+[0)0$O*%BH1[7&07"<,,./Y%HP<*SSB<N(3S"-HNQ#(U$2PJ3<(GRUF\
MI,]8!=\(VR4HN?%BQ,$N6A53,)\L:.+!K@_)(B)U4>F@V]']A(/GZSPJ6[Z&
M&,9+LXU+Q2S41?,TUR41&7+3G@A@5K!MBI="%K9>U7HB-6D50U)@P95BVP:B
M:]ULJ]7Y2B$_&X@G]'CK5;Q?UCEC=>^X=WIZ)(:5E;U5RE-\? "7&W<WYHQ1
M0<\YQ'EVB5.YY_/B?'K#@EH%>F1WA<%>QZ4XQBJ)P#.*KF"7:?8"V^5O,:VN
M;2]E\4:IA(E6NR=OCT,6@Q;N^$Y8R-GQ7)1L8UP W7?"'Z8<G'V\5JCG,\CM
M-E]H#Z6I#E]_I%\8/.O0=LU';3I@#6N1:7$J:!(KGU\6T=,MF9>S;&%J'G@_
M0>A?G-K.Y1F)C,B.N8"_5.?9:RTVS[@Y[S"L**#]L3%PL)9[SSN4^ARXKWM7
M8?*E =5Y_B]Z JJ&M*,?:4,\2QJ/Y5=/:#HI$AG%UD"=LFQ5L&9%.5"PCU+E
MFN,A#(2\J.!A>F$#"3S;KOJRIXI6?-[)_B2NBK%']DV,CET/ZRWGZB!,N9=4
MY#/)48W^93"9C[]QL#8$4Y&L3BFN!9(CY6]WS<3,T+*Z9\6&EN@V X>#,0ED
M]F$N;,Z.0&WK1I\"X<=5Z>+ZS^?2K.IHI;\6RYL[G8U,EBN+RHH/I(>99N=H
MSPP4;O4.K@P0_DLQ::V[7-<?U56K:% SM5>^,,9J-5B%9+7>70- 2,Z:RC_0
M*+6\[[@8BH\^AERJI]/_%)LK%*7@Z##+O-QW@0=AH6&;T,#)_IK;$-3F=\9"
MS/C5/DVYA>8<_JS(/DT-L!FCH$>8.!M4P)]1Q?CY?\GF_[O; M,!7 (.3)1!
M7I[H ^OB?XPDK\Q+\D_DQ4Y9ZK.@H41YC:1P)XWA%5V>RR'S0/KU5J<_U,X2
MI2-2C4I>6QZ_GO/P1>$?^PK_PS@20TS;@4AUU?GT[M/@]W01OK1X7<HZ%4G)
MA530N_V[C22NY]Z(JRXXK@_YF'XUMRK%3K8[-OO">%]X7)!\N $"LQS2]Y:I
M5?_67BU(Z%DD##BJ^(+RC)KA'Q0>5#D%S^Q=X9U[T.JSJ!N:.JGXOW.1?#IP
MD5SS)5R#]-4?;,115\S7/8XM.B4Z>8WM$%.#=M8K1Q#NZS(!6($[RNQL?.SI
MBKN6>B,<=S:$0S3W7O^.ER(4SZB/PEVH6XJSR%-L1)X*P*.>C#=Q((&>H(Q8
M<>L8:C;P>8#*-?*Z$3?,N/"7HGT*=:[F/Q@I$GVC+5ZL:<?+@I;" 4^"% IG
M4CS&6[V&J;D/!!GN[MRIGE[8O/3VZ_.F+2PB.-?*NS_4W,@BSC!<T?3<$IW8
M(,K$UGN55R]0Q[$ZUY*U;[M<O_\M2GV,')^9I5RWI"@K4D2I:G/(7D&DU]2:
MTT\4MC8I, X"#68!IZZ/G&%>-#-*2D=/V<7DOD<(KDQ5+R!>_E5)RJENB-7)
MT7(YE69_*-6,*$E13.V<R?:")R,@H";.C-6[/! 07.T+TH'VU!TB4?_3U7!]
M#1$5&5UQ[:]LL[RO:4=R&L2DM[H3LV6_>HX<6K[?ZZ'2;9HZ- XT-U6E(#4
M;B#N<=O#<_PN_: G@[5T2VL*!<"1,W'Z=$ 6*_U>WC6A?BBH'2P1^+W7(I*T
M[C;/(;:./$8).#ZBJHIVG[AB9S+95)CJJW\!+>*>KZ9!?KPN_VY)$AS/I;EF
MG79%T))5V_9RZ_()W4E"9S(9F;G^*:K,3*#=?A.JG/2]-VX;VUG'_+;U8:X,
MKM;<7*)Z?N))Q]S/LJ*_ZN6,EO\QF&"^^SK, ;C]6X[K9OL,N?EW<1+ "4?'
MF^E=8K3T6N\.PE,<AH(Q;P0F'\,;)]%R2A(,71DY7WKFY<]N2_"#1NLB2Z?;
MA,DJ/MT3+"F/N2#8K@HEXM2Y@\-$;)J@[,)!R8"F0CVAQ"/E7O)A4R,WMCBV
MU)J-T^Q*'>5 [;*UQ\?THP&F8\?D;'6N*V@4U4ZG/_G::G*9O50O1Q).ZLN-
MJ^05GYU#]"4G&VJ;VW9T\:TZ'6J';(E]^;A9<[L""OI1(G,W@(STI_CG ^WN
MGI?'U19978O2/"FDLP6[U=(JY)V;P7K *Q-BZN:V[KTX.,<W?R_^XA8V\?UD
M&H1D\3J3O.HG,67763AT *@E2BS</=UOK0SN=0=,H_B3M;1\JC*8MSL$UF/\
MB]G:+2SMY5(W?U=/BVDG$G=>'K#,PIF"OS5F*GX?4)0-6* R':G2 4]>2Y0O
MI[/437P/*(Q"UE&2>USSH:LL\JF68]2UT!NB^E4-B^FB7%/:3&N:8)*,^>KE
MHMOGCF=QT;D*BV,)#\[>L%3_TBH8N8[HT ]<[0E%T:;JIW-)J#/9.T3:F5R2
MU*O+$.5(49C70CP1?W;6Z%AB>J%'I5;Q<?P]Z;SN2QK3\7)) O/N?;+Y833E
M'ENTH7> W['1X@M%(O:DBLQKOAS5,ZJSHVQPFT_*N"!7,C52C'2[WW(;=VSU
M8LLIN? HL9C0*$NYCW7U*V^5/:M*1'J;D+: :6%-S#(T(CN$VPRWKO >=35W
M%.+V:>G(B.8*[^KYI2C^SWJZ-Q4M ZACBH5CDD,R3!G=9@&3_BS"32MOO\R!
MU0M;/>K$:F^,M+Q:EVA&FFZ(='Q4BX'%]X]&:31ZHWE)N68[W05;\/EW$1+Y
M<VD,3S\.H*$J-8NA*M[UC=![,5:1O7,%(L#F)HU5!4'1<^6TV4)"SW/<3>SI
M#?+F5$1C*I7!GO@ABW6^IZ ,^&3M,YI8K:>,O:B3IFH21EYILL,J%>-I$"TK
MHQ%M^?P!Z'3^Q4V'D:RE*$&-'R_U8LT4N:(Q'FG+QG?/%T*LZK2[ !M!-J]!
M*@==S%(YG@UJV0Q6 -^N^ Y^S;HC-E@#6;F*X!T(K+T-X\_G_^/F5YU@(\>\
M2J8-P.W$A^-T1)>],CAI17-$OM;X(Y_RX+L;TT';O;PQX%<;TGH=% G1?&42
M,NNI$O[;P>J:&R>FJ%)75V>"$G'FW'8YWM*/MZ_!YPJ,"JLZ_Z^P^INK!=50
MJX1#[OC_OH7(.RY?2P]WF8&QY&>BH"O]1+XJP"<SOY-*1/W;"@2V&F/,2__)
M)R$$\_ZH@*1'=;S_8&XY2OXWQI:? 4FSV9\X2Z45^(/]S/ TTRU <]K/-V9
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
MMJN WGU6^M'VCBCR=)]@5DGYD_M(64KME!IPXGM8XPP]WUZQGO8G#>ZO=M_
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
M[.4Z2RV\YA(,R@_GU*,CN'*W;,PM>8,L!1TU[:<#GW!'<=&>U]K*EG740O+
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
M\->">"F!V_DG&6[<-6+UX<PN:SWO8^T4(:#8BZM!Z-1;RRI7=F&+YN5K 15
MHA4<E]\O?QQG4"<+W7.I(Y)?5G#CA\R1VV\)Z$E_C)[_A3&.>^3OEJ: )%'W
MM$-9JHV\E+[B2LTCDFMNNWT:S!:H71YB$=9/2PO9PDG*7G&I4110\6 ]V:D_
M"QLHYU=\MSMDABY<)S'T >_5O9[]QYH1-F+D$[ZP0)RZ=)%?%/RZR,?NOIAR
M<F.+6,8/T-=QH^,9ATQNHIE;:'GTBSE5-K@O_DG0&.R.N:!(<G("C'U<3OB&
M)=O)L@^JL_[VAMT+ YXQ)*"*;5I%_87>]QXG*W&U3&*(*0J..?!,N@&%Q%,-
M/K2'/BRV8_W9RI=,6!@GZ]LB36,%_;XY910GFR Y60<!/%_^BFSIBK7#A1VV
M;*:3:+]7:,7Y%ILHX6Y?5DWBV%;S0F/)AC^T'VX\?]P[*,:GWLG_8EGKB.3T
M+16X\P5'< \5DVH8\[7TL!6(40176H!0^CN_D(R4AJ<HDZW<V20*N<]JH7-@
MRK%92=QX(Q[4L<L,?A1F-E!I:Q'DPVAMS5I4]#P#*;BNQ03MVDSNZF!YF&TY
M+:"M;<YH")GGXJ5BV ZX\-0-R1-\B/^, W=.['GE!=%CLR;?-Z(\XT!+"#5S
M-4U60T20H!E\:=9QH>'.2%86;:Y6S-=6N0HRH0#]X2O:;I;E^W=B6TKV>;IY
MODG3J)^_00LNZ:LDG^^V+%$8N_]G&SPROE^ETD>CEWDWD.E_IIF;NYB45T0!
M)Z(GORM@4K,/U<36!#WCGB'C!)?>Y'0>>-O\LM/]WA%)_0@@WYO'C+ Q-'W+
M>:8=SB9M)]00:.8MF8D&P):<.T-[V.;=I',6Q&34QPBK^L(8H3%?6EMAZ_BW
MCO#=DY596.&DZ>58!^6Y.@G5NHM(4O3;"9@-<X>/02+03/F,S; _DK8A6V(;
M\N-@6,C#5CO^I<Z#CL<FK^&+E:1>IJ6Z[=K&AD<DN=>+]T6<-[T?7$MXF@NO
M=!&W^JX]-T@V:GD%"OOH,Y>W2&/*_OX<V;;-PW6A,53[4UOWY7H]L6@\DBUT
MNZH85TV-F2*$RDV/]_(WD&:4*VG?ZI$>?JR0F>3L:E@6*0_X+?57P8,!6Q/<
M:5%7-#75Z$M]K+!P1IK4VKCO_BL"BV0:DV8\#S$)>+YQG(PM^E,R]M>EZQGZ
M-,&)&TUW(L0Q]0&^<$ <"GJ/@P-VS0+ TC$++?SI>I0C$9^5C1P,!V+4]9YJ
M)?%+TFIT3-$P\YH"LU0H'N=[D\D$=,FWU1B;!'N)7HL_(:.\&,B^RZR5\CUG
M\M/#N0%XQ/V")*TN@Q.UAS&M*G;7Q7: 4X\NYCMSJ,;Z?M?TB\WNYP^["-&6
MLLFD+6OGM-+G@(4F=,VPIP^BK=_'!)<PO6%[-PW_KKZ7"Q<_>9-M.CMCK_=Z
M0H$UV[?,*,IY,<B5#.ZN"<%K]>'R:@K7^G_0\Q_L!H+-T99:(@IR8OI+DE0?
M!)_SI4CA9BG.U7\I?.T):F$Z=41BB8I,<#9YX*ZUMBB<T_:,IP&M_24K]P%(
M04V.#D3]IPYT1452]A>2)5@A?*C7XPTD+4"PBW8(D[VO5@88D#@Q;].2\2B<
M<#ZN1'6R@MD-"W-[>A2DGRJ[,Z8_'6-:!P=/!,YHC\4[[=8K,%M4!7^.-.<D
MRW"/?&$GX,H<MPR>NUAOLXZDI3N8Z$IC.0?I>?6N-((X[824W$[\S4M!X<2!
M, VH9H\>S_#M[6 DW?9+FR\+KR4P)4W\@96YC9MEM_L+\B3SVB25._"AD=61
M4/UO)]\Y[DVSKLOS# 862F+2J*NL9_>I96*1]6430FT<_%&&".;H;Y@TZ8T
M]V$6ND>)[3EV-VB,4@##]%)F[CX3[9^U$_93O]C4O?E<B$,?NQ]&$<NHK$)X
MOV5>#QH,<A]L_ D3E3R-2KC\U4._/=A]3O&(Q"E1,SH:MN3)3#V$\Z)S]+Y(
M))K5$VUWMFQF &>%AY6IETWD^WT;WQ(QU+&:>N'Q(4TKW7\:6O/_XG_PRV1N
MMO:(Y&(=]0JKL:BUITNZYCM!+,](J*32$MF2WLQQS12G?V,SO_U4TG;.M=T^
MAJ27\>.'! AU^ <('?O'Z6O_:"WWS;W]V%I.<G[FD)V?P.4=?N=HC0X?$!9Z
M:FP]ME,_(7K"/%(4Q#),6Z%XR9S@"UQ*Z==?KQE>)W%L5;'U]:%4B.#:K-OZ
M"I+R?N(@ZSQ[)XA,G$ ]G0G4TS'\AC=/&3(^!R\P\M]F:'_Z\DAS$I[29V\;
M@*1>(TR&Z,O3<!VU"SB'!0WIB":S0@AGKE#_%[&@]>E$A("B IW95$8'*5+0
M-?D9GZ(H70'?_59.22P\#2[.]*[FFM*B4H*C@E<7J[H54,.37.VVHQI.6=Y&
M1RZ %RTB-<L&XUOMZ7]^66I>V*M89MM1\VP;WN"[F7XT/3\)3];*",S!0G<0
MGI\ZNPBM(U>#QOH+ CX-Y9@?\+34ZWPJ' WRL^U9V7RY*4:WV,!3IAEP,DU1
MD^\%M^'JU&T+*%_XJS]WU/TVM/4RRSYXU_6PC9_PM#7WO^^8].;^D+ZI:C;&
M6HS%  1;O'&]-0W-,_&P=U^8LJPR>!$0?Z\BRRDT]*-D@U"$VGD"W_3J*1#-
M-^QPM+1<F0<([^&1/A^O\/;:U!Q>^0A;B<:!>^FW]1N%L&;7!Z7.2^;9O>(Z
MEX?N.2/>Q7(/BDEJ:IL1,@,*IO>!-E]L),^3;&4UU6>&/X8P[!?''J22X)0.
MDL_B5**&[*T;>2=L?/F[]!JM5R0R!ITY]GK7R6"6-)#52.L5HXTC$N7H@_G-
M9R&#VM\+-JX%P>5MA6Z9\%YX+X:436FL8)9^FFW\)%/]M,*U;WF3!:&A4H#Q
MXB.2'\:WH? M'LLUWEZ4G-?P^+EFL/R)91.Y.4NW).HC$HO*6\9V/(BV2Z 0
MI[]47J9^ZDD)N#JZ[W67*#!U<4PFXJX=1N2"-ZZCAIFAEN]K,E[!D$IHZ>&J
MOE^!E>/J="RSQJ@SO9#PV2L^U#.&?@?SN]9UAY*F1"+:,D+#T)=\1 *M>O^1
M$,0Q^ [3CYM)L_VHV;\))U#3B*\%L@W"TFY)/&;%KAN)>8,AZSNTC$VY_F5/
MG2P*(F.*.2M#OY'MZ9(C>-+P"+C='?T)1NL93?Y4U !-)9"IR+;Q@EAR ER[
MFPX]GON!0X(NP5';0&4*+#\2F.R+4C,K?)F'XZ5(WY .7)%';N:Z3PPGD"\!
M9<& %8P6CQ-="72SU'SM^C .?-K*J6ESKADOB<1R6S "^RH-A0=:I'!#/E<+
M[-*1E#PA\3AP!+UG]EKAE4]VJ+GG3Q!I7!H3TT@M#H2$Y'3BY=TQ2%P6^O C
M>4-50P_1"CV$:*S@"_9>^7I,5_\VJ?4O;1_I7S-27]!:K1=XZG>?;GD_^(A>
MZ+6(IIH$+>>P_EKHZ/F=Y/VDC,?&[G<DXBWGP UV'9OT=.^BX@:G6*1XY'13
MI=Y(V_>L"YQ:J(#JL:!S@EEY!HI1%*WE3K3(8J?8PTO/R<[Z<B]G@9LF$EF
M0L8S@@<;U1[)J,\7=6"-B(X&*,B<.S/"0-O*WZLG*PHF=P52\7&C/*8S-#PD
MZ!SLJ828<3>T+_'\C6):4<'],1US9Z 45T:*H@U+98^)QV>MCT.EF9PU:-70
MT%L#WZ;:\N? $RL#:XL7)Z1.NRL,(S6WGV;OD$'LBZ>?3"PA$$P*7SHUOQZ:
M*X\4W_0@2_Y=.5'13EK8##N,<?NXK[$G^)ZJ6#2W4.D'*\M$_'*QM4<[=-)2
M#&WE_NK)UF+TR&?F2?*M9_A/"N&/AD,3:Q/\G$]G-NK9IJW=)MG*GZ]@X[;1
M[JLD?1ILY@7Z0+2\Q'K1VGU6EX4M8C+<W8,\6!/ID_$J2BK&,UJ78/=5%(^U
M+^F"11JD5S*>28N4C#JPF14_;S4N@>7O?S^G+J&W_BC="012:'NN]&7Z_K*F
M=R=H0[^RXIO,R(>'YJ RI5D/K2%SV:WWN7#'U0TA7UG=M/&<3I5/LTRN>H%%
M[6F2U#*)61&>(".PP\K2WL%9+JG<SIZI^\B3GXHBP=%;<L=Z9Z*&I$F:-RP&
M"6CK0S[=+BA#NW=')L V5AR&)2O!$R$30JP>K9('0SKNB^!(V7:CQ#L!@$/V
MC@.;.3697WO-Y[)=>0OIP8==!W7"Z>XE\Q-8QZ5I>HGD5/__!JS[NG\ ZSB8
M!4\ ,$"XBZEOL&GP-M5=[4#!54=-)"_0%.W9J1 B56^Z.OVE\EBEVL<#B*8O
M'O/=821\+1KY,I'!(7CWU=^E-C/M5O^U6;D7Y+?+W;&54(KDKP570G!/RRA=
M/#<&E*&[A^)<5-5NY6&U^?%R2A'<4]/W%BZ+!M>[L')MCN)7I(L997C%^P^W
M0;QV[SL)P H,DEDE!R@OX@*W[?\/=JT_#1K,CT@HK;>S#F4I-_*B^JI>1=9&
MTE3EZ3"<\9^WLN>BS7?CC;!0&H'9, FL]J NONZ3[#8H2[>-@@?3J)ER6=M\
M3[%BY<J#Y,!EWU@;U\@O1,O<O+I7U ;56H,[OIYB(<N0U/&F%(LX[7#9F3U
M4,LMG0-61MUC@LWB9'UR /'+A%!70ZL-&S*#!\01)2M+#6)#]O3SFWW47YU2
M*QO'X\,GX!O)3CQ?T2*+5 [G8Z\6:<HY)?Z#,X?_F'D'69273JSY"U!4X7<+
MU!WLU-<]Y1>>F-CH53]P'Z5G4'2H#YY=@,"_6;GEYC23JL%A>ED(=&,+EPG1
M/,=9D^N['O)Q",9=?M)(+6$"ODZU6$P=&;^!O%Y4(3SD!U+_LMTP84R?XIQ)
M\TE*4ZAW<*O:4*8$M#>:[Z&PB?,+;T (8=I'A%KF]'_T2&GO.=XC?$?(M;=]
MY,#F^ZBQE_>$ZB/'M:UPE:QD[J"<JM)D[^4^.'QU9MFG>)H?YS!U,*';_<CK
M8.(A9!Y4U+&>:*ECD#=DOP@&06L*&/;ZTN$5*M9?"PL\TN]<D]X8EA=6N*G@
M)"^*5FF,U0UIE?!HX,E9>"*)X+Z4Q?4M):A5HR&\FE)E:OYBY&;NG!WSC(H_
MT0OL]AR_AV$"8!G4C0#$F"CZ$;A;72,OT.S,0;<> 5Y)?T_@FZKT(,#K.>G
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
MF89TTBJ>^X9W99EQ]9%1,F:+.UHL"&DN@)T"VVPA.@_$XY:"$\I9]*$*2H8
M.X$?5_P_14*9Q[,+JJI@>5B$543QTZ,[%IL"4G]9HIFT"9U68QI:PGTTQWF.
M5#M-]"L([ NM?0K.6$-/3F_G59Z[8>M RL@(P5]_HR5&HVTW[)]N5PEI<98/
MY]']YB8,[/%A[/-(X@=,7FNN<&'=6/*]D+PZUBH.NO00;.%F#)B /7M>]* J
M:O<>FF7CZ7]#O2+'N>4Q8A_;+ZR.!NV^U*>.LP.371@U@3-V085V'?IAW6LM
M#<V?T3A/QNN>69\^(+"_>6&NADRE\^#OF/I!WI>(P#ZMZ^WGU4UO^WNSC^F=
MFNE@V41_MAG]42YSV(Y.WJ?UGK(LY/ $18>!66.N). IUJ<SI^7M!>QN_J)Z
M18SJ/V-J/'?OU#0?RT!T=X:76X$*:,L#K;/](6/'X;G4"&8BAT-N8-.^@"R1
MK^W"@D5:U]Y./V6)OS/J6LGC[("Z[EG;ZVN.A3BL@3HAC&5TEOSQ&X!50G[B
MBQ])L*W1DU8C-ND:M@O 9GRM3%=-LU:'1?H-+FBK^-^* 7[L[&0Z$2NVT="_
M$+L6!IQ& XSB0E7*VX26I![%-77J3F.\YG.:IR$Q;;#EFIJYZ6L<.NT%T_1O
MENA#F[).O(5$YR.$YG3,;C^6G._V81ZXXL%2AN9;+55.G,*-CQW&3?;+\A[]
M.AS@&WWN<[#'>ZDQ;SOA:[3/_E*9UTEQ)ZU3%)VJL#*D[*.C?!^:13&H4_OF
MX>ICY?M$^=1]RV%WM _O=#!/O>BR_@CU=3(+YY#.>9K1%7E6=HJB4]49NT"?
M5:F$?XX'9/^I3+$S_O]#S]\HX>FQFO_O#G5KN;Z_3[<E$=+7="!GN#RU?.%1
MO86_>6C226CRT3\"RX"@#[7H-])+V&9O[G4,)%E+>P%9GK;/I&](^6W;_3[6
MGBHS^G/4/97KI;S%==SA?/=7[)47!7MELX[*Q9-IC[%7277!235>DZ2T7U1T
MYJP;(5B:7K+:?H#1O)X(.CWUH*N^8(,%Q\6 N@MH=])E"O+MH9&?5?5;AM>4
MUMBH6'F?6&D^?"+M[];];?_A4=J@-F:XX35L%)HX_"^&EO1-HJ&!&*GP<OI3
M$H$-FXRA$W@/N@1T2=4[\L%';Z$@%E*55Z76C5FM>4CFU90IDY3LS#<6ME'=
MLY!<XIJ-L9.,([_*#4MY< <=,>Q%G0MQF_5G01;--,[)L< 4Q4;3-C&O/ITY
M]Q,O-[-4*ZF68W/)YK;T CSQJW,<IJSH@V7;#Z BEB._S5C<_\^6[ LTQ^6:
MNMT7R#HR2STS!WMG+O=2C6WC2A+K\$Y%Y1O/WAML9S!8#=%/NM:)&S'4MZO\
M+C++LO+>FE-0 USSR*I6?,G2:R)Z+G5>):G LOE;9E/GU^P%>%C^\,I[?4R0
M&LZ;[V6*];$48)O463_7%#I3G/<52WRZ[U+OVP\^Y(4Q0"0'@4?0)0MTBTC9
M0/_((N7!]Y)I!;93;)G:;KJB+TK?GX3.L 6%+Q=)*ZZ<]P?ZC(_@#.C:UQP<
M>B9":FVY64PBW98=U!P(GN=-6_OHO3(_ITT)\:UTL>\1)XHYLV=H/SV0VEAG
M>,,G8WDO=@$XW>3^'3!?3<M'&\WRJA<1\G;6V#!V?CR#_L,6=6<,-K+K>*'Z
M4KSGC#*\^ETH$X)9-9;?K>BZ/8\R:)4-M!K546C.^99!>!BUCGX-3)0HI?*Q
MTII7OF%E]#/K;O)X><X88H?VR>&&MW36+ZJ&]Y0AN&\MVRH;I:O@]X^NPGC5
M'4_=W_%9)WK^I7S@3?;PK9,4;"E2"HL>6^7H3V<-J$H@OXX@I"OW30/6?%)L
MC;&?K^S+X>[?V67UX;Y&3+GF1D01[D#7F*3#<$$"+1]]+W%I_]12&TE>@6J)
MAQ'HNV2<LRHX:A'#F=\/L4P.>\4?$2,TDZB5!&W6K':V"ZW.U7^06:6/+6V
MTU9'&^C6RM%B4=?3.9S0UX\]5P^L\W(JV-FZGWLPWXTUY?>3#6\P !&8\/N1
MH\)J9) .TR,WT?D?/^HT^3W.214_K^F\]*8KZ2.P][T:A^.MLT[(6%WG')H3
M@!=-HX;<8M<AXTD'+V]7V%V:.S/BO%/H9]"4@YJV^'P9I@-(<[91!2<IN4-U
M])N='_??!"E!>%:V] >E[MA*8>8ZK-H;[1E!_CIQ(?F>]%/Q*F+<(A-7+\ C
M"@65[U'<D_]Q'Y\_#EJZNYK* ^$GG](:MO_!A!,W(FJ>UV$NQ[MS?N CX >=
M1BH??,$6.))>9X0YI+>\3P+;S[YX+I[[(RD&-V#52)Y:JE^WDIM&.M'PK^H@
MM!79VP!9*9D'<FQ;>??7"_QJVJ_SI8G,='\/B@DT!+AZ7T^68WCNAQA#@5/2
M0BM>L1\@JR'TI9+17S1DZ0,<?(0K5GGZS+/121O/)9J;:"E]P.:DNPZ)&!)=
MU4[?7B_J/:+2J04O+BPD+[BU5\Q-1MZ1Y@7B\MA;AR,MGT^-UE=E5KU?40DO
MP6B%O +Y;9N<XBBD9;%%9Q9[O@ZHOT\[!I@TF6[?L'?HG JEJ/3^3U-PQRH1
M1$OG9T]0*SA=3IQTM,B3Z)^:=?7+9WB12>*F@+U7;FBUTT!V/WH,_T5)U=,"
M.*Z?('2%1 \_8ED; =Y$!+K)Q@@2W.NE7GK/=U7=,+3!RG)@AU[9AF&!Q*U;
MG3&QS(&/9:6P3CV4#27"%ZPS-P"\+(KWVKR<WB"%64>'H0CU$3_.N*,3,4!3
M.]'?G) ;#QRW5"\HV]W.8_F2'CE%CY_5O#D,B1#AR'_APOUMKS=]7XK8XJ;@
MG]?&2V^#2J(9889NW"$C)^N>SLRDB0O,[NF][SC#&BWI5,5"U"1U>$P#.ES1
MUQ1;&_(8G(^^LL)?(D%X&'V2(CC/V_[+8WR82,J)Z:0K+B[7:"_;RKI#FW ?
M/'LMQX<ULBICA&P%#.Z__)S77Z-5K :\(EY4!RTSBR?.&^^E(=7 \S%!T\$F
M-;3%!O54A[>,Y+?%AF13G_&W K_OLYO9\C7<F)\)I>'C5'VV#I@PB9T9BX[-
MHJAY]?UERD&2!M#NNHU#AO\I;U%]+&_!K[7&9/^3:+JLU::X]=,]8LAR7G_D
M=Y)0=H%7SS]L=XYB.L'"RV(7]G?J%L[_W]4M,#Y"YXY^*NF0 !OF62-QZ%%Y
MK$D+6U_19_6Y_U9.SB)%:O&61&^A\JH9KTCF)15QP02@TIS:$W%BS.@\7GXD
MR>ZPC*FFNL998YCMR9\3?:>C&ETKX;A&1^:0OX[\UQK]OW"&DN#4^RJZ>ST*
M;#Q6VRG5QVCI1UZ8Y0Z?65+WT(NI2-SM1,L6($K@M]]>:=9(NW.):^(/O^@
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
ME0):T8X\1*TD FBB=.C)>"4)'X,,[SD.1G1*[8([)BT[U]XR7[S=\D"G@C5
MF"D-J4=]/8,>M04]9Q5XXWJW^^T)O/.'Q,RJH*XXEQ#S@2J3E<F&<%\&:;R1
M@L4CJ'#26>IM*+Y>KF7S05&%T,RQV$M$#)S*\B<=Q(5\;=O7O,@< [N#?=8P
M@-4G <;L^ 4,&=U'Y(0,4SVLDR2_V\% +%/(>&1L8#/D@"??O=N-G?Z]9@:/
MM=.@AF82TW(4CUS611W!7U2)!_(X8\-^@YETC&3O6$890FG"M>"PG/;D315!
MT\Z*W9V!@J/3_[\(&5TV3(;J"1QT&0EOU[/Q@6,+1ZJBCQ8*PD-Z6&BM-VQL
MT!=HBG-].9SN:')(%\15MI1Q7NO9"7A<&'34KYV<439<','V"7#WV48>C*[\
MJE]%A>]IPL1\881GKU@:(&MLQPOU@GFDC)^;+)8M[;[KIQJO8ILEF3OI-'*M
M;&U!>QKC+/3SN5[BD"%%:8'].-K3'$7[7G<!YU'PKM:?[K;S*91HO[ZZ969/
M:OQ&^AA"3,C!+#TC9Y"OF")U]CYGG)I*V\XU6](4\N):G?]RZE^+\M7I0 ,.
MW(E?5%95"9UF5W5E$!2X>O.(9 CSEM*ZAJS]C91_S5-[L TDE21D^EM(@D%@
MR/W##MOI&WE@WBZ!;#3=]/-;7/:U([&E4R@;G='&RDAVG-E5 <@&=<I8M\XK
M:U'"K>M9I8JR>YB^EW)<?82;C%E9X-?.#&P\=V2VWB4]ITS[,8D!Q6Z2\V-O
MZJ.W0<F]IR@KU]??K7L-\T_A9+V$_-KI_H>F$B!_]\KG_ 8"-LM&3QK?]I[!
MCM;OJENDOP;/UJIV/LQC3JM5LC'A*B.(;5X+F'R[D1%$)G@69[@G2NIZUG"O
M:4H/X7][8QG2CZ)[$'%%OEF]Z'6NBV#95$*!HNG)1?"SNT:W,Z.\XK5/1>JU
M<GPQP_OOR=[<"76MD*N>;$ROGH>\+O](UAFKBI **.?6%,OIEMP<Q"N8:F"=
M\]JW_5D.R!!:**JE['2HG>X\(CSF !H^5BSF\\7SX3R-_$@&4\4T<QZ!O?=+
MVM2!Y3PZ]!>5YT9^PHD]IXY1W1>'W#G205?YM_+>E/>6CU6#\42AGIMC.;FG
M7-H4RLE@#]M'88F8B9&;Q 'H#LNCWW9[;.HQ_":/F AE90\OUJU",V-8!SYK
MH[UIW.ZFEX^H6OY\I;GX8RK1;[)@UZ$0+VKP\GI6\I0_*8I%9]E$O7<:_B:G
MU<IZ,D?//<?N*2RTA'GIA:2*9VFMOC3'A7 B*'CV&H$W@X'%K.K#BG]6_R(=
M8@S-S !,++C*^>(H/,>[^9M!V[X^C\6=MNR5)%5F(!02G%H'LI>42Z3<R/>G
M/&=%6YF*7CABS-5-[ZXW'*1IR!L]"8#,CK]P,Z5;)D4'[ AW@8)#5:PD!B>-
M8#U?VY$:6PC';3U;.J6F&WD=\\';'K21F6\7#3%>BW:AB=V_]QBO_:^<X-8L
M1)],J\9G=__S!EJK0*U^,W?W/BK, =SQZ7[(7!X^27"QKU5R3D'^3))KHF$S
M8C/TMCUPQE*\CLSQ@.US-T$H!/3D8"[2>ZX(A=$.PPB9)LLXS2R?:IZ:F>M?
M-%2QE[ZT'#5[]OT:?#GP=I5/;G'_DM;O7A@FK-%329>/SIR'G<_Y(;$&TQ^L
M_>NC;Y[B!&1P.38&YZ5-,1CQRAG!3EX!,W7'@4<?L+,)Z=RT0=N&+"$XL-;R
M;.!/KMR"<Y:HA.[.GL"'KG<+/^.S\_Q&<-7?*W[RWWE= 5^):O3:*BBM%?NJ
M/U*7/V2&;9$53ZOREYEE'/2R&DE-T@7;?J7OZ0BM%=E %=O,,;JA>?)8(]QN
M_,'!/$[;M>[8!*E<%9%MR@^5?Q%VC^UH!68X/#(5,.S5&1B1'0X[JN-EO6S1
M=\2_1AJJA0B5F+^6.X"V0>1BGC;@8+HP'>)/E,[NY=2K&\9EAL7/J&"@7U1Z
MBY!T9_DDGA^3KO"!%7Q*677(N(C5#P?<._BR%W5&3((N&C9>US*;<D/-ICWY
MBJ5]B"M*$?4RT3"5+SE/B(1KTZ.@MV_]9>[D[O8[0VU)Z-C4:/RH1BD(X2-?
MX&<[,=F NG<]V45P8M[HR44$DWZH ]YNFPUQ168CG^./;D$8&\J19%1&F/%2
MV+4=/90<_[U%4/U'B^"[Y,?_*U,MDOSQ%Y7,,3$M:3M607)^)NF/M&&7DC9$
M!8X<IPGPH6R<Y?.=G#W[N)PWYLB-5(^(,Q+M0S2: L][\C]*N\8,'MAG)G[.
MX3EC?K(\;Y]C72>K7?I/;9$K*Q.FBA0QS.FYXU[D_XLS+VU=X+6C/"'PN)4_
M34+LG"_M*1+ 6U, B$T(G&GV#S/<OOB6&E,1T>84ZCG3TIF/!1==UD5A;R6T
M4O9^$CV:\&("@2?+H< T\'&N<-P>V"VC#9!>/4N94I[\-WS5GT13K.'KJ=F"
MQT?;0*.;Y[##HBFL6]W5C4-Q9L=/[WTM3#O$26_U4G37]E+7 K)DR!0YV=0(
M6!XS=_9@#.H/%9S9$<D8Q-,\@!9HBNP&N<,8]_NRHI=53O'H#?'EW"W./%_6
MN('V6&%-M35^UFH/_'[=?FXD>M[HO"VVJ22R$]MB8%L $WENY7F17@.B<:Q4
M=67(P8YS+[/*ATS<0V<H;Z%]*T1*(H\"MLAVC_)<%RULKF9?CA'Q?N+C_L;+
M]=QQ/V2LJJQG<1M3'E'9)'RV_CTSP<HDZ/-/LX*9-[C= ZOX#P,E7NS4"?FI
MICA'TEV+A*@7_<M5YY\BW7]S+<@L*E8R^@KF'F?107GM#T]X7M$YRAJTH_[S
M 'IH:^R;X6Z$6&Q$RN$]OX:DL'9/2E^][ZJ'+9LW%+$$RTO=?A0\[A#/>T_2
M,J_>2OVA &3R40I)S9%#<*08_9R-HX+N*OB2[=5\2W31+#A9@JQTHO]>@;)<
M??$A^TP2%6%J-GD/]-J H18TG.&R:+CH#I#B^,/C]8GY/XP;7-KVO4I[JL+)
M#?MOTG=!A%XO@](>W/USM1\8IS.$$/2LLIS@S4B)F#<'0YULE4@C*^C!D'93
M\+5B>7:=H+W>3BE ;/I7A/0P.EY"(F[C,XC8VR7%BEF]GR8REXJUAH(DO5CK
MAX]^"(>A?^OJQ>7IGSM*6#&6VDZ\V['>LH(+=9M2SN30E-*RC^,LO:RAD1 ,
MF4%Y==R\ ;S*L7/G-BY?< G!?.6\@B>K!76\QJ @'WC=9%V4M:8,?S/G+.&1
MS8OO_ U+G3*'Q9JG(N':) V#;M='F9[+M=+'A#6:GU*,\129+=(Q)-#J4XU_
M*APH\#A?^K+NAP^BEP3PMMH,&CL?'^YVR_8/J1BR";JCU82W5/P;A%I?9:-U
MR4OAF.;3:&ZL#',XA$!3-3O5&X@5BIO,/-.8E;H$5BFS!AD8MG*A3FNZ:8=X
MT _C9L\U 2KX"T4GN<^6QP%$]C"LPL)SL4P\U(U^0N<8A807N^D3K%B>/B0B
M6N[5 ER!];+40FIFXYK6.PYZ(@:E'/HV>KVA]9^1M4M[]=F,JT0/D?SAAU'K
M@J,ZKFSNW3I5EK1WNE_&DA(F;5*TN!H=;!H$0]SQC'C>$: +?<BKAJRA+!JJ
M.N<@)W#Z:X<(%B:#_>(B7DOZ5Z0X7KXG>0G=?)![_6&6,1.X/L7I'."MFD?F
M1F,\@@1/NJ,TZ;&E*^F\;KUT ';P6X7J3.=3'+#;Q+"0>Y>&S$^'14!ISS_S
MIM<P:'@,BM_>W<?3AT]GH^4D@0T^=]M*QCX)H0 >C+VN;R>O[G<U>JO(B0BF
M?&7WMOP.'4E+E? 0+^+X.86:47C=K6Z*TV'G!)2. >T$#$),<8S!8 XB8,)S
M^?W+56MZ4XPS)B%]<.=:-O] ,71Z:AF86'&\C2[\CR8MX^F7[IA',YVT5J/Y
MB,M9L9EB>R]DG)4/KWDUY^,G1QX<I:\Y7*12K);=I-&C&_,)IN^ P[5*,O79
M&-;QD';&%2[]);CA9X.>;F'^@.DL]U.:0$'[Z4Y<D<!GXAZH]?"W3X<<'1>V
M .L2U \XVT'^03KAB^H^LW>/[L74V OT2X;+].PHO=0W4C[;@>EQT-47[@1[
M.,P/LC.>P+#H\%QXZ"?(S^I*G.<GR&<1M-I%+9G6NF_!:BV6?4W9WY<UI\\C
M-[0J)'KRZW,/5Z.&F?4S7CKXJ2(*K'"==I%"H0H& _'Y;?(K#<$W)D*OMX$W
M$X0W1>^/BQ\E%R\[>56*<YW:>[,M#N])*7(<)FY,ZJ05!*8IHIUZ=5Z;OI%]
M;A 0G'\^MB:FH%AL'.6HRLO;H/W:60RN<JQKEIYB&<J-UE)L/9D(C>UV>7+"
M#EEPV9%#LS G%Y+NFB]S*7I2ZC;Y%,<&+0B3='7JFN$O*I1'58Z7[?4P:&XT
M W$J1[N5:#>P9!JA)J1ORR H?VV3([J"A!-3+_RN"3)U"K-L\5'N?-^8_7FM
MI,"Q$ EZM>ML(SG *Q )F?T9>D>>IA#2/3E"W[F_]WG0#K9%H&G1U^=D)&&Q
MS]J>OK^_9%U?J4[C0@\Z,?1W:=R_"*@$[6L;C!X*=03\3E3_NAUZ3S#D 3%7
M@!+[KZJI"[6[LQ_*W?/!O*N=1(W^YMN(I^TI(QN=%[-?'I'OBCE*&Y;_0[_S
M^L+_6;\S*P0D''JXZ+6<S_9[[*]FN+)Y5->[5CGVB':_WNW->-^W1M8/F;_$
M?:6!?L/N$X#9>V[C9[%$^24"IZ),3W3%BX@29B*Q)(O.3X/&BW,KE4(ZZ!C:
M91AKMNT,[*R$_]/Z-S&'+##XWT8$D+O7BZ05A_^%ITY!\77AJ9G\$+#ZH/W/
M*#M TC92NJ<P9:\&]X-V6 (^&;5S(G/Z3L>C4_!77L@E?19K9>.OBM5>3'IB
MFO(#7W+S/V2160]6L+^HZM)6T(_14MM'2^ FH@9WYO@P]?G/^"]WG9'B\N:W
MK_[U*.\)_W@I #O 7I9DM=D6M.L1(WJW09%\[TS_*^I"M-$Y/N<U?G[B9R9+
M:\VPS#3K&/3S1#O-EX[%?G[*6G"/ZP9$3/+'C%*:I4,6(^^8K<@0Y,_+*U"W
M6I#<^;KO];H@'G<()X15)T(JKOA3:REH(V<>6+OJ@516]H1WHR_.M%D>IXRQ
M,$)?:7%DO%=FE2/YV8@KBK\-ML7'-,1HPTR-\?I%E5,>J?XQ";Q4(Z^%H ,"
MKS? '5FY6+R(-)NS:4TQ:1\<GMD5(XV;!'L;4><4O$);H7DK%\0Q?8,WYC_:
M50"KMCVI]Y73[!P@KCPSK0MBW6R/OZ48*\.THQJKN_DZDR#7Y_]VV=C[7B5=
M3$L4!WD8N"'&UP0C)'-G]Q6"YZ]Y37(VW0+<MUGMM+H25<$^DA9"PLWQR=3D
M,2L\#[LH+%"2\*")OIX:T!?<3TL]11!/L\V\)Y+U:*C JK$")C!PR&1TNO!<
M8O><HF-R[_M]R4I^K&4B9LEU^L&M#< 8B=V2%7\.<B=*0]8I+K[MJ*B<.,W9
M666-DYZE.#AA*0P"+HK3Q/*CH^=*I\H;X'TAK/=8-#4QGM3A/'4WG!0.BY?'
MTJ5=,_7/,4DQ3!N5_HZT>W/M\OA>:I7!RK>&()Y?5"/H','E'>K:PQDT S.9
MO>>[UWT,17+E+[O8WO<RZK<>\U,8]XL+4H;C?"GH3"\-Z.8'.<8VP%H/SF9B
M3M-A!,=ROUABW\"E/'20?I*1/G!9:Q?E>=D\^F[V\#XIG7V2H//2#5ZL:@JP
M>UE(L[*3]8N*U3)=B_@*)&08.I.XO%(\37%[F&\]!%!H?["[[@ ?84_G/Y7#
M>HZR]U"R3^QF]F?_-L#8R*VN4"RJ7A2=R6?38\',CO&@#1%\./D#Y=*>4"R:
M]W0W43G"1B1KFE,0,H##+J0[9][:@?:D 1-?*\SIG0*J)UY4N;+#%8+IB6TI
M9<FZ'2RF13<YK]IJP<R4Q:+%LJ9J[(>TW E5NCKDR*+U0=O]=D289H$(6YS@
MZA, +<R=(*7!<8]1-,.,<&M6 PT656%F49$4I:_AUMV>?Y[&]<7I/5Z8KQ*I
M)YIZ:Y7) 0:_+4!"!EY4_LC2$6\2E9B1KA=>R&JU%;@^[I9]J]XC5TH/^> T
MC.^MH(E9:#^TK4ZU<:ZV9F']%]6YOO-*=T\[X)TQIXN!%Q2I%K5Z0SG=G/K@
M1<>3^2=N?)'GK%;00:55+K/?ER$$TCDOE.C@0)4[^75'XD;YLJ&NQ0A(U(%/
MB66?_0[2L?J.!O6P$,UTB]5F3AY[TYQ(%6LEW\GO4U!^*7'XV"2U"^Q3+4XR
MI+ 9H3B%5U.Z\=DE9W'EPN,D16]A_B"BIY:_>U8FSW]C1O[YT-Y@Q [J@,M5
M7E\H$^QY9S6SL]80 WDQ*[)L<-V@M!/G25))7NM["U%^<./M!MKT[!*"&VM=
M[XI74-6B;Q<5_+"55P25"1,32%YQ:8M$U0N,5'WLXJ33O]5F;,0S$\&(B;*#
M[4K7N+%ZP^,WT<R &[:P/LM1F30*LGZ!<K0);'@:.QC?'K\#WQFL1VI\K30;
M#,%X\\[=4$S<F!B]NF[W:"H4"J,K#H$^G2%'3YS09*N$>SXVCLI9U(A< Y4K
MNLF'ZPB;1OW48IEZYY$9CK>YZ_SJK1$UG/BERB)N6>?I2161&$@T@=NL/;%$
MDKVVZN8J[Q,^PP%WS%DV[ 'TVV)!1O#J.90"QN/MWE397'ME>2]-CWRY/,G%
M>&O&CB[[4&SUK%#P24=BQ+RFK\^732;DGE//*S+XM+3TO(%9*>D64)AMHT#8
M!F+@/:ZG-:K$)6HUD,"J)19=8%1-!&O*S37QZJY:W6[11Y[8P;O5($5?B\_H
MR9V5PEP1M>[@_VGRT1F%,@4.Q8EK"0$J/+9>:C8ZL9ZVVG93M41?'I?HO>BA
M.Y/%G!C],X&3)DP'9_+;^:N()P;3_LX;[SH<Q4'J9T30W.D%;8KQUI3DFUW]
M;Z5GKFYG^I*,$;#-@95E>. AA\R\_MBA  68%^4WE77Z&^&J8TT&^P1@G1X3
M/-84+CV,0A^%\@;:GD*V)5+)_E'48V>1UC!P1]UN#9&N^]?&_Y\RH3+_=V@>
MW_42"HE??&YHSI$-MLOV!X=_6OL7U<>H)/#Z%_DS][*0L%5N@9[X+!;05[H?
M'_<UPKC.X;E$,F4#W#)*IWYZ6_@P",944WC\5LLR!>^(1Q&]K#[BWX5"*2WW
M%JG+_]LIBKF.75AE/3>P3E;-/TEX.^_P:8'D/.\)<"+%,VJ0#V>&B'Z#MD74
MN&^4L/'=3D.@E#@5WZHR52:OBW2RW23%L8T"!/VV7A*M'IS(SZUV'H@@;BT'
ML/U>QTMN@_L[I6G6N8^]S.?^P\O\7JK?8Q9T2/ZS@6=M80Y&CPP:)D84I0>$
M-CB#M%HZIHPTC 3=P^CLO/9-[T.KS[$'TL,-<Q](67G).W8]KP5AJ)U^6$!7
MK"SJ3;.9(W5N[Y7E1K3'72YMUG$N]ZIL/ H5@-]JSP0A/G$_PCEI;ZM8XC36
ME]\O75.Y=B71P?"T!_J-BY'PR#TW9_1S%O@*-U!AR_('^1J%</E3ZG;S9/\A
M8(Q!E6DRU%,-+UJBM[$(N=QE&]^;X2>?$,()>RP%/M&$O]@ 6'BVQI@MH$#R
M%\DP19:+GP2'&']#:VQ[6'G-C+)&3Q;X+/?@>L<( <Z-DPT9'KI->JPQ3(_,
M,SAW,;M:.0Q+G;UAL+\D6\?Z_M,?4@0L%Z@6#6^H4YH=ULUA1-("_JZS5T-!
M[>3<A:J-3QUY:>1XB%S9[++N;T[(+?OE80G%N<X;I;>1.@E(4Q80#,9"@%_[
M[+/)M;/CI"[@U1VJHL*5]G7%IN%3=DWL''3F@T"<0MO>[2K3E?BC+%7LC?EV
MWFS>J3B*SB=IG $+VS8ZALM=(3H>BHFT4]2W>R5:*3*B,G_*B#9'?@ADW9A]
MJ2JAGI"3UY0FH7D*OGEEO,E*Q'M.^@-][+1@C[73L\VS2U!W>U^\C!UBF68W
M4/7/[O\O*O\J;]=3A^WH;,'E[97 @P[(-0&29 A;3;,V11'][7_<E--*V[_U
M+-%FN-.&6BL_*JH:V5@7#VV4ST9S;_MGG"[Q<-THB)=86' BW7)/%-AG7>?$
MW3SZJ-#$]:^'B]_0MB'%$AX-&BUIJ#LVD7!++[A"ZT7KB5<=7/.JB$\GTSAB
M. Y^YG-7._? B5MM >Q,1F.&!_9L%U0I<+W=%>Y_]W,ZP?A:(5]235[I<WST
M#: K<KZ<$0:W[%,QV&G PYZ\VU7FNUX@VI[VLK=RNU+F$JLA#EJ_$2?S&PH/
M<X<A65_#7,T<I47R%$^ 6T,1X"]?'2 AYBGUI/O[SIGUS].I6ZS"&<Z4JEQO
M=/;;TLL>N\[2U?]UM0LT2<JP%2RFA[^<5W6"A[!"%3XVW-O)?2J2N7X]6=BJ
M+@#Y6#2KJ N$;%6N1)R,W[\KI";(WP:XT^<8TO!TA4O@/5Z(&:D2!M28E.,^
MF5YR6@HTJ'/_I8#"493;X'SE_/21D+/XF;+H)Y"-)2GZSFOG7]B4">'=U9XU
MLP/0X*Z?JS?/PU?Y ;P+,%V8*[%8A#$C%3YQ[!M_R;/^J@?L?NBBD?!<ET>O
MLO?\#/I&(T/MZEI?+T%+:F?H%U4QM/U[VH=K8@+^Z;([P9FGX+'4U]&&0J;-
M<P_DJ]0EYT>E6"U_"*9'LO0&],E/#;]=-I)U9Y7FD]-8A*@*@Q-C %8N5 YP
M+LO3'@WVQ11WQ/]YQ":W4\>Y'Q(;P_IF(0Q.4>4.RT;/MTO:"%V97LZ M<P,
MUL$F[\^]>7XQ,1+[RB[E5\?I35F(W/ND#,Y)]/.OA)+T$O/7 SC/7U2U_=AA
M$3:KG2F&NN1>W#[_1^'87HR'+F8I,8".)$D#OX<67#\&I'_!RF3R+*:_#_FI
MLR@OYO&Q:!=NV1^<ER2P':@*]6RRQYJ59^V <4GU8F=//C^Y@6:M#FIP;@Z+
MGAN;L_#8F/UX*ESS[6<"J)498"6EB;OW8SKIKIG\R54G52Z"8!)/%0:X\J;C
MMI#J^-,3A$>NK)_<FC6FXWLD2LUR95-$SZL_=QRLZ(IZ;74RU@K2IDF,%6A4
MI+&Z6!\_OTIC$L_D$)!>_E#N,?=]EJEX-B=2IL6A00_Y820[VX,I)*SS3+UE
MB*I[?JYJ_4<0C_[3KD;Z"[U9[N*R4B8"=QT/+W<2)@?>E:.M.XJ-+1@F\1ZZ
M2&3?>G;7G&V_?M M=6HKC,(9*GK,-]?_6M'^WD8_I+31*24U^W;/MMOR9Q/
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
M0R%:B2A>&T0"^GX&7.<'DG!O< >PP,JQTO[V_&_SBQ!/E\PHI]7>5]Q#$]%
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
MG:^XIYZT)=:T*X,89PEZKEXOIG4]^4.".A_OW$IPJOO5OKV8'\GNEZQ1(Z]
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
M[ :F/MQOEJP*HS8>DR5K+KN!#ZQLW<69;;#,*F@&T9@-]BP=-BR)SO",XCD
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
MA(+(3;V)^[4=3GO*P]&I836!1G3U3%J7O$&I?GL U#OWR<U?;]*26R*KWCD
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
M4!& +7+* "K'UL#QO,EU+G5T>\:!>[OGS[U[JCH>@VEOL*=^N[$$K;'@(&0
M^&6&JP%-!C>&OF<0Y_=XC\1=>S\XD*Z'_XYNN"E'5$L=RPT)L4<#?K91@><2
M-3N,O%#B32<6MAJI:1=W#&^\9;^>%(^9R9+%XQ]=?10T#T'A)?+G1B[GUW7X
M,[L0F"/K'W$]'7/,0;G9UJNE4'TA9>M:-CCS%)VFW\9V6-R/-&&H(94NNFH]
M'*G=1&6K>-QCOQEE7]I'>P \WE.H\2&D7?Q0\=U7B4_MXK;IQ)'7QQ82U93*
M?3CX4J@NZ;^QY+[-%7MC\U9I\A5363]R;^%'(7]Z8&TRNG[,,E4W$\4#.SF5
M*3_D5J.4G#Q10- :&48;2BJVX1I6Z7Q]+QU]X+JDP;:\=Y;;DMHH^,874G(;
M;G1\Y&1^P%&SJ=L,T>U8KR1/MS9W"P"/8G89^+HDI:D'5(O-+XO^<#MGQS\G
M9JM(BC14LJF-ISV/^<D'8(+'78H;E+6 A]YQ.+'L2O/T'H7RC.EF_O&@;.V[
MO2X H>4X_.FW14;J-_P9(_C.T,T\)A LUG4+?%G,J'_#^1%UO\_KHC-U8%,1
MY(3A48'W6W3Z4XV7<C/M;H)CRAQ]_*S+91;=!%BU=U&<=YR8F6]OXDR(:%K&
MDF1\SBU$="[AJ(Y>XP.%#@>2&FG<MY.MEV!$AQEN(2RQ[^86%+DBIH<EM[0,
M_FO:R/X3Q(-HOY[-I*\:YZ<30K;<@"[#RO8T%?#$[$LV!M_CO5F[MHH@\V*_
MML$;_1W\@)'#685#?71'"'*7^&)U54L_JW#;N<EZI<2NVX02]/%R:49<K23O
MN]R?$^.)5$MIQZ*0U^,QWB[\M5J0@3Q]X,Z7V\LSAQ!'4%G!_.:9 0MG(#S8
M?L-/QY=MY F:76SE_"Q4#?B! T!)Q2-YP>:)V,^P&K1O;YME;C'/393UD,,:
M<1:AA61F(>7[WVFY3%?<X18H-1A8?9/3'WMR^FSW;-V)T.RLIM#W;)H,ARUY
MS4*4CSWRI_=F,:()J U+/"]8?G^KGF]WXWX35\/:!2DCV1)IAVC@"LO:SVG#
MBU;8!":9@AV8Q2N7[S#H] &P?:AF($3-_W6UO)K$C<X'&"(JXIX6^BEU[7?8
M8U\+[!?"8RD>-U2^J^#Q,23D-?+(PE,1!_X=DWDD,S<INW"YRID:8Q@QD+HV
MJ+I407KIQJTCS%L:@3^:9;WGO*K!A\]>Q"Y8,;>?'G<\2^G7GS\ ,*B!6G>H
M_<\+!T"#!A_5U*ZT)XZ=H^<TJG!/]M[KA>,22O1X9BJ+(WLZ\IS;2_/+<NJB
MW>Q]1C0]*>$7EZYH ;X'0,<5HX'21P.E>V(OT M7B;)-!#ZJTU<]^F"2^+RD
MLD_-<1I\/T9KH5&P79GG1GR=#8-;A@.-#W&R4V.G;VX@F=A;TX1687JZO=VV
M6@MF2ZQY]M V&U4\[IW>D\.K-N/4X>$Z:$ O6MM(2RD:6&_A<[8+.'+8IK,Q
ML^W:/=GY'&%._YV3[6RELJ&/I3L"=XNT[S7:TRIPST,6Q"#UG2<7<[/_A.<N
M$9%>PH-3[\G'82N_T]= X %0DDTJN0-*X1\5!2A6#//>C0>_5S,EMVDD!T+D
M*O+6D(Y$U&%2$F*S25N&3EU.;$RV9J1 ?P*S7MTD:+U4=*1W500RH,;KG'M&
MCWZ#=9%*@P<F.<5]D2F3P9X$+T$>$BB>U#Q3<Z?K.LQ%V!K$Q^NK[08J8XOT
MW^UGN[TGCZ(:<6_F\J5QX2$>33KZ[TDP+WN,-0=1AFI5M?0+6<#EG?EG]_JF
M,Y9>EQ/T\>Y1\M=V&MJRI#48\#MM/<]TM?U0WM5/C \!/JCS)%<'&J2=&.9D
M&'4(+4LXE8V6LJ),%=4/V^-$U(5/,(:OV&A?.T%WG*_I 1#<_(P0E]N=]['+
M91LW.OF3+!5B#VTD5U%M"#T_ /CGU;^QRG;M!7PD+Q3)M&S3OB=_+UY1GYXP
M!!GGRQ[-)%NG/H$RQY_MB6[17[-E17QP,]PJ'0ZD V^]# 8V!LK;'FQ$$+>]
M\G&3O$X%3F5Q]1@G,SIP=YI=GNO+K?7U/CI+?.^UKTNG;-!+'T) ],SL<.KM
MDS=#, ^-(]%M!%YDYM44^Z+RT>+@QU=@=*!>N-=>*H#/*[D];8["[Z[VEX]A
MX.\# ^A&T+L^UQ,FZ#=1A\>?>%EZ]Y[2 DP(Z_9Z[OE^DN$LZD\$A7<Q2\'*
ML1_SSX,XCLQ7:VEXG!\T]3M"XYKOGA&+X1)MU_5P5X\/5+W_T W(M!<6Y1]F
M1Q;^&\/U*T%]\\\$]5Z,=! CX%?3QMP(0F(?"B06:PW^-^EJC:--H.$ZV_)-
M=LT]*D?:=P*,!]UWL,.P%L(/^=V(YCNU;^75U)_9JZMO()G=24'W!/KZCO?0
M^/#;O=Z3=-]TE3+A+?4)H5]O>>+S&,[SJ ^6"Q.?%C.L^MK"V9H!K#%'&K,0
MY%.S(IHC04>;NAX9:OES0L%;Y7;I?.WI$Y</@TAG\H3>#Z?!EEQLSU>EPBBJ
MI6K]+5MNFZ@JY;#>,P:^O2%EW;-OQ%[WG 9%S 9:8UX5Q<[+AG[7<6-P\'-E
M7!"-!?*0H.S+TM%SFR>$E*('"NHCK;B &94S^9F</Y0]DJWOO.]HC-Q/UF.L
MOZQW/;JT9)PA0/&(>JL3Y-V>Y7TWV9';/<$N1'>JA?<@N,:F]69.<NK3"7H'
MM(27'^)Z$.N#9/R>8VITWKE[X-G+>>KX?.K/;M.\<8';T]R7G(L_\G/,-L<G
MR0M"%FS$")*&:_T_J$.4>B.V=HDIQO!^.GV";41ZV"4>!VQ5H4B+/D!(B'VP
M[5;06-(11_P0F@4?#)9S%(M>;P%&92<*J#C;C.AJ?:'ZQT8[?\#[,  /_:<^
M5S:&PYU2'? ^*IL@PO$W3@> /I%KO27J "#,3X^&J 6]#1N'E[W:W2 B'E<1
MV+*/BXTV"K?*:2..?4S*SFI.ZT,>6^BG?,4M)/UY$98JJA[?M':KFQ_70'@<
MN(_@')3-';^P0<00-:_<I"*BLM1.C7(']"U*@1)?ZROGKGPQ?'W(K./GA%:#
MFC_L#'[MIWSD=TV_=^6KQS_^6'!K&PA1T>G:FEVU-&]S%+<N;'LI_RE*6O*Z
MC7U)I34IX_RU8/\MQ)%1A@".'JE4)-/S8Z+$0KNT:""_Z-V9ZCL=OLP),H.T
MQ;./8KEV!+2^/4,)D>(*(2Q/J09"A$DF?G.=)HI=K(OH*<1A=Y72XJ0$PG&;
M']SN&D%.D,>D@K% M:[1YH=OGGVS]N/?D"4*=[PX %J5OA)EUWO#^9T;+W)E
MA8/^.3MBU#?48#N]J((D$/_X=:.4BWB9$55"BMD^P!)&RS/0KW'T>-'\V0V>
M@<.);\H&2[6Y.5FH2C14X?&$CMQNNZ^\I5XN18;7;P;SOQ1^$WP B -^T,?2
MT-BCP7&VFI+C4/WMU58=/I5;ZDV_?P*/M\BJM@LV1Z;?,M70[7NQKL(H<P7.
M&Q[*\P*>B,!>U. ;F[H#N5A] 'B98>Q]+<D:;),KT2-(ZCI#3EL_KJM+V5,5
M%8V].-G^*\[V=&"@+(-OI#,>=K#OX0-U5:?ZV,U.J5AZ BK<)]B56-:F+H7R
MBI/31/H@&2 <184:_4G124K&KS\@F8^3$@J#]_,9!LKWH+47] 1.]F5,D!XY
MG'[]G- 'X\1'S/W<"5OL(L4! 6T\9]4>-V;B;(J;/WYGM"GJK<<\0_@T!Q/&
M!Z\4?V0+Z*--:&N2__)4,7H+Y1%Q_HT(!.W7VQ; 7V\GQ8/-9ZX7 =X5S<99
M"'$L&P_P@1$Y-^[N4\W/(K86Z^Y ITE'7^C^XM9JU#"#4-IR_'UXVYX@>^JT
M+FR_!-AI'B2K"E"*KRB+_[_*&?YI8==_!T'B*9F&C\&I/_BH9K<]?U4QV#^,
MO,.'F2'3;LO20)>-Z/I^;\!8M7!-P'[YZF\LF+)P  RI4U0$I[K@2DCNA-M/
M#79F^$L)U$D^.8'#&99K35G?&S,7&8\&MB9KM!ZMT]O6:.U/V1BK&(V!HK:D
MKV+<#LT&[:[9;N!E^_LH-5)*OU[^B<,+Y@3?XIBDEHTR9@YXYVR;V\^^0Y/,
M<YVON" 339FV01DL<>1N7_FVNACX\7WX>*#> 2#PLV7%B*YW(/DACJ97X6ES
M!)Y(+2[*I![1C!@46)?]=@ ,ZN\(ZW ,GH+^[*/YJ]QX.I@?\>'TOMC;"DD<
M9V=B< K5#S)S&/2X8 "V3PI18IOORQ[*Y#VT@VWN^*M.6:$E2A>J)SC:V/8>
M5=E^.&MCT4;] $C4VX$EDRZ#&.QJ]BK(KW[*W?>SCS'O\&3KKTP= ,;9^M_W
M$!0 %"0"Z0UFLWRB<DD*=-O!<3[\K%.3],E</[OV2[;T?Y7W3*GX\2W=9$9[
MJ#-HRXY$[MX8)WV_.V"X!8\@V1X I[8/@ DDLYM[;7#J]Y9CCN(EC<$;JY);
MS /-@82IWBCS@#XZ9WS/4%",C]@0RVV-"LA4F>^@.CV1_M?#2Q'0YVY:H(DW
M;^[%17WS<=D1NO,M#/8H4#?A;F,Y&0/XNS^JZ.[(H/87]\;^K@!M7)]ZT;!,
M6+:)_ 7A$/5.D+DF(T0'3'(7LVQS OQ\XWVQ3N\;!T!TK@D9$R#_NQX-J,1I
MC^5^"2J=FT]>ML"O/A&;5#$?\V(()7]$,>#K@PHM/!=.(9D#^FX?7[@/PEX+
MM.%5Z^KCS"YU&C2GEJY<?[-=!'E"^(',Z-'NTD*)XD]',!_3!YW!,M^YF."7
M4B!P;K1MA=>T5R):-* 71]1V^8-*WP6ZC.U9?%RUV2I$?% )$GL7:-T;]X&R
M^J$*>V?6JJKB,=H0C/GD*^ZS\)F\["WJJ7$XVS^OX%'H->31\F!U:4./95O5
MQ6-1@:YN='M$,IIXK4+Z[J3^]JXE!Z&C9=\+R9SC]>\AV,7\ ^"#'/,6C:$'
MR)PU"G/>-1J"T_01G-Z;>,F]1[ %FRNXY+A?J$SEL&>N, AET05C!?H@9\;O
M:B5;7<V>1@42N._U%ZC_Q'[9*2>01X15^4+4(O!#^(Z"2^O,#9:11C&[K8WP
MJP1IK3M<J_.J+@.^Y;'/)G?ZZ,H13EH)C6>3;2_WO?XF]G&RX][IS@-@&!Q5
M6$Z&>LM.'RU[>WKLHL=YP8B*U:GEJ;0)F=Z+-HK3C*;CMAT@.MA0CSAGH4!.
MH?I&RF!6>U<!@O?UXNTTOM/?J "N';L=9J43S1B<FGQ_8&;Z"TE]8"%0'"56
M0A>,F7_M(J7'-16IOYULB'5XF^Z&.P]OZMLS'UBF.0 L@,V45-N<8K',/N]3
M#V@M9?M#DS08_CISXF%[PC;;W1VNG_!X4A*HO[^J^USQ;:O0K=)QY.]$9W8$
MU)<"_Y=_%>U")-6G!\!0P5<MU:4R\-*SXWNVPTVX5;+J&="\8J/FA<D2YR97
M$>![EW0OGP_G2U45V.\GYB.IBURJ<7!%S_U!V")#[Z_*9@VHTL+B;=(C$=M5
M6)^2"5N5<9!86]770]G'9D$LWH3K41<%5(L@W<V"$\^FG_+[#PNW!DB=::_0
M\31K%JK9,:'/G!*X]2%H'C+<[X-D6?RCOKF.F7L\$\[V?A&-Q4((O-5?R2Q4
M/[+8$I:#Q>^J_"B=MU8[Q?BVB(BBP[-8-NHU3#3MTWZ-' @YO:3!,J3(L@-<
MO0_O)@N/)/R,"(3E81D)X@^=7(E(9EE2D.(5TG2O_PZUY 88%KUH9-KU_HK=
M+]FYP+QQA,A"-0WE3)&RF"6?,'_B;9(T4:\>6[A5I.I2TZH@9[/29:+!-W7(
M3N1Q=!KE;!IE4@PY)Q+M?\9OLMUP0V=!@\_O.S?_SDPDM,-FVR7+^FT1BI/D
MSK9\%Q35L1OW0XP@R?E*2=HT4@G=&H?:I,YOL.)L65PUP^\]1+DFK\ 2]V &
MU9^<J"?;8BHWG7)[]9<;K79E])C1?BUMCMO3K/-J"JY9?"F[1G017[LVLX]W
M^N]M$.72#T>W\B"\8+UD=EME"S.B_X[01T1?+CB-1C0Y VG/NJA?-(E0&7C8
M*%:><#:I5H]HL)AKM&3;YT)L.4': R'W7;W]V M[X//6JELCK_RCMS^W3=9A
MN<GUL'ZNBSV9QS>13,JXHM[(L7EXAPJ#?4N[5+7"N V68'0 M#]J3IU39_IY
M:5)'0KF/KMF\7: ZEGDE&GTUS(Z%;V@'$%6\8YY^SL,8IHHKU[CI_*/-/AKP
MJ2R]G.8:R=GA]ZU^R:^0<:*N^TH'2OI9Z,96V7N?E?PB2)V!5[IM1I6[[)V
MDVEDKG7=U>R'-BFV<+=$UO'1$$F2G*%TUSV=K=+Y_-W0!5N9/?G$7ESO^2U9
MXMO]]T3D84G$-(:<N@YZ51+6E7  J-($[&_M^:L/--)U(>0:0)C%0K7<S'H
M) 6/[?=;WHB9<M\&+!'U8BXA].#?GR0OUY[-0O]DQ4%9?XSX.E%WM4ZS&"N?
M4,*6!=4?DZJ%]9 9AKLKU;NCE_((EA!*EP^P\0;!%HPO#&H6W--L+/)]V5@^
M!EZ."S1MWP=M1X@RE*/[:(;* 7!^%SW#1UN_JU;);X+IOD>*;(\[$U;<4E2A
M_/ZD3$:=.PS)7+"<'9S<@!&;ZSU9\Q+G9T\IXMX!+6Y[ IG*5M7%=98T:_K+
M_A:^\R';)#;Z5'36K1[1^;$0K5J:\TMUF"P[7_O56S*[@(Y-*^83X><5,B:(
M%V>^UZT:"4:ISFR]4=>9-^<A"P&&)"*E$M14+INP0,FN_0]H\/OWQ'0%1[<7
M,Q D]G'O1 M!RA:T^&K\+WS]#?/]#!_UN&/W%X&M,5O29L+"M>S]2Y2E2O%?
MQSLY.QX H'SJ ]M8'&PO\,I&A;W. W%:L6)22O;"B2"X<IO_N70E_UH3C>/;
M92?+I1S=M V\Q*=&?/8'P=M:%2560;?#=I9#2A9F.BYC7E'FZV.DME"@-U7'
M\: @1)#DYV!B^N3-1%-E>RCY[(+.+FLK24=+KD:WPR-ZE0*@^#EU=F6HIKAT
M/E<@QO1W3H*7$N^IKV![AB^$84,.@()4HEJL9WXK8@3)0/RSHZ%C[Q+G@.%
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
M.\1MK5A7ELF?'"WU8C[10)L!_9E[R]!4YS&+,L@CDS1ZOT*FWP#^1BWZ9H+
M6UE&^K,Y=J9>Q(J(C*6ZPTCF%WM!!9GLWV)BN29)=XI5DG5.<HV0DO+I:L2K
MZPPCZ3YCPX)!)!K"2R/^1XJ%$OS4KCZ!KIWK)LI^Q?(2!,E:OTK7QJ8B)]17
M80V4#LW4*?6C:@1*9?(H\X88$4EK@^AZT;*2@6^"J./?"AT B!UL_9_7EFD0
MN.DO%'OYD%+!4A6SI3.0%D+_^(]\S] &90>(*Y0=(+(.'P#1*_9D3$!S* @S
M&8@H9J^NN'P0)]0Z00DX4'<IBW<_.V8@^<8D+2^5D1L)FO"WA.$LH0''=%X6
M;'J@0N.N1*'HR807T< ."T_LP!";^ZREH']TUI][I: [?'?8TMZ_5J+_B6GS
MDDU&C<24GKT@'2Y#]=WF?U7WY?%0_NW^-Y,4,<3(KBQE+_N>45DB(<O46"94
ME@D1$H8IV7=%V47V&+(O0[*ELF_9&5G',F-L(7XS]?V>YSG/<_XX?YUS?G_<
MK]<P\S+NSWU]KNM]O=_7=7W ;YIQ0U?;.!O"2U#;RZC"^4*M_3-1]ZW0<BCP
MS,^6(=''HVAY"K"[VE>_@[LQ[2 N,XJEZ6)*=]RX&#J<OG@CHX=6;/KV5SQS
MX\/AGI(C(-\@V\N_V<= *NLU#WX\BSU2NP+PVFE]EOS9+[.R@3>#.=O6%T;>
MG90?#_G\"Z*7H+S1OX_F>4)DPDTTQ%-.Y6,F)PF#W17 (W7&M>?X#Z?(Z9#/
M8.%Z".?/](\[#;"0>QR'RGM7=6*NWXM,&Z#*,E*8S'>(4ND!%G;N[<,B?.]4
M'X<8^@R7?-MW&M^C(UP,W?%[N$S. B& ^Q' X#3V)92X9+D08>P7>';[_<5@
MMG/NBD+MUI870_O]7O+O&]*BEURV4:@SN=V(JXM]+J7DE!VA.,'BA/,*-DAK
M>$X8^*1WHL3_A>'Q+8JBZV8E5\V\2(HX DX6EZ30D5Q"JCZI7#?DS22;3Y-1
M<NJ#*\?]O9"+D5*>W]O4"IL;6$91.7MV KN1/BTB<RUG^M"*!F%7E4\6(V<:
MF7*':J-#9Y69BVUG>EH<MC+ U@;5C;H><I=QOT0&J!BF_@#EE&+MT?HGLOK]
M'BBNOW,TY(*]]H'%=?^I##"2L)84,YH/N!=M5//G+W'#+_9A2C*.B;*;\NA"
MY./L]G,PY]ZO.EI#4A(I0FO;YBEPB#35K^4=C_VL)83ZKK.+#(X[6+T5 ;TP
MSJ<+8"BL?_0FAIK8?A!\]@@H?H[=WO]+1'L;Z0;>6Q0&C1Y<)(<D+I<=S8=#
M"H'D3!#D=+A8E 2(M1^>O]HPG0(K@27Z7JN:8(V.>HZ^Y,>Q1!RO3Z3&0A>-
M^&8@\^DG%O@<$J^O(4<TCCU 7SH"2FP.%]\=-@6KN_N98C4!:_^[K;]Z82L/
M;_6O19CV?WQW"DS.&KH/?*Y3%J,>JMK(IMN^/[CI\:?& )-R\""'Q_.ZU($)
MU<KDR9C+K]YYPTPM%)H+8\]'I)#"UNQ_@YUDXHL&LX3VT0947S;)UY^9DD@V
MXGAZPK7]?&#H72L7E7:FJGT3JBU4[H&WYN]&WK_HF__UQMU_:^05()Z8;::P
M-KY,C_/)<9D<VF^J*EWL&8[S8B[+P^P/4&U*_&G>I70C;T<O&1O2IOL:AW_K
M-> I[/3CF_CI7?]H >M]!$2)1ZZ]^7S<"P/NZ^A3O9%=#?30]DLQV2"R+]>@
M!%I.>N:]?8:K]5!YQ0<'X-\&BUO?<Y7=6C[S?)">)8S4S>KUEE-=7+'+'M2S
M61==/D;;Y6B^># &,S"ZG7:J>E\K"I,RK$69F;_@'R*?;CV8]9*]^0$6/+-6
M>]%I-OC)!/O[Z#!EJ9KC)HBZ3M<IQHK'.<LNW)$1\DH9X*PR3=NEI())VU.,
M2!LTW?P6U@1NV99<FU16L(RWN7G[%"P9GS2U'53(V-;%50%XSZ6D.7U0SRLV
MP#%3^)D^^Y_*]Y0.5Q_S,?O_8"+GY0N\#,F'%T+4\).9OR'2SYVFNZE^,NL(
MC7_,]%%,#\GEU-B#Q>U>LFO)\Q_%W-F-)MOYXTV,, %V$.'ZNS]:\S?%T^0+
M5:SRSW[RQP,^76_1:F'8S& TGT':F5-XDF7">J#_!B?YY<Z?F2BSO@^_EU*H
MG:G Q@VI<?]&2_+BJ\]^0>P@NP\AZ;MYN91)6VK]%!!@KKKDUA'5AN6MP7#<
M06&T8H$.?K2JP<>]X)'U!&E7$JRGUC=3S[[+!_:MMV7O<G7=AT8YGR=!6YMI
MDW+CRH:T+OJ=,+V8+XR.%1.$9_0L4'8_F4:VO7LIVQA(GW]_O1XK]M'6B!?>
MBF7L^NG&\R7UH!S9'3TICJ9.P&<HK>ZA-=]*6-Q?O0A]8Y)C]L,]MRS_;M<E
M&1\!L<6(G<8B']@+\LZGS'%0,YEMI50^_4*.UO,_?H?I0\NMXTA./&J:7K31
M*Y%1A=QOVCN3]LY&1'!N(,(XE6HN.UZ<F$?+'O(M?YJ?5*QRARQ.$Q%JN[2W
M]X]GV'BV,2IAG$L&AN;ESB[(4F&,;L[P7U 3E:\&86V0WI_&X VW&85!7P\O
M.#ZMN=VT[ J[#!E=K25)#55WLUK(EQ7D]*<H.&[Y!^]95U1%ALV& 9NZ\P=V
M3MNIIZ^U&UD*&0[.D%9&I-*$0?/JLHNC'U>#,-:$]M#6<>&Z/3"<U,WEY:;A
MV<\?0]4-T6[F#%]:K_@>P;M)M<D_!6)[/%I3Y-)"/7';N=A1_4QN?-4W'C5D
MXM"66;U$16T/C:7;P?*34S5=R/0^<3*L#W>-QA5'Z_3^2'SQ[20$;M_"*UEI
M84O&?UFRW3]I-0ZG\XO_2')7<_P_*X-W:/0IQ%/?;T7.]Y9K40<YD>E^QNBN
MN0>+W<U;L"!C=JNJ/T@,K6S^BG3V_A;FQ.YKY#9RT]?]X7 #<ZP5C*BBHZ![
MSW11F*J10<Z@W"G\R4VQ0?R" >"HK3O(P5,:U"ZW5NN<4Q5R0JD30!IIVCK6
M?O@>D !BI8*9#VJF?G.HRR^J4U(=,_$WLM(LQC<;#EJ?^-GLB3'MO:YL(7@$
M>*)E1:35D.IF#6SRA]:*Q6Y@ME;!?84P8%6X($'ARKS:Q_GWG\<,TW6!F<O\
M,>+1??7XF2/@@!PM(SW\F;?N;_ABF_M*_'A&$@83?!_I SZ9%$CVCL_]5L^_
M*FV1OYFE%HK2YO*?E3;_(-H%,DRK_SU( _CZ1R6S.D=^MT,SF;SY]KMW293?
M<&4T^ G>4!_+ 'O],RH+^LNV!P9IIOY"950Q1T"K$R7#V:,]\,+TU0MVI//<
M:%P] N [3J!#5=@2E-FK2&%1 <3W";E@>7YQ:?*L6(IS7,.K(1QIL\.81]-W
M N>DM/G+5:@)]*T30)U[^T6H[ZWO%KP/HT+ A,:6+YZ;E 8@4_!OYU\HKD-9
M3/6ON-)D-7C3)<P;G=*,=.45(O)KWQ?W:=/)8," E].=$S2['B'=5IPK7OE_
M0'8><EHF)\X++KRT2KST35)-$_#]BF,_;,=UY"R18*6[7+?.<+J=VL:H[#Y[
M)VUY7=%XN.@.@;=6XCFTD[RG,U1O#=W/R2CC)PV8AA9?LU7*H+72%7A&=A_H
M ^B 7^]CP;,+25O13/AP)\>1N])BS2X@).<L30=-'JC_D./V[ WM5N\P0F8-
M O0=%:UC(D +&>RAC?"U0%65_-)T]E5YV,K75W,$1/ 1?X'W/U4U<$>/MV]F
M@/4S_TAXT7_PQ#6*FM=9!G8$"/IL"RM)^Y6NI.&^M-.-+$M$TFC#@WT9!J,4
M?V]L0),W(5 @,#T6RMNAXVWF5)E1=O;L0)]EH,4\6M21%"(AN%#A^Q.7Z#=5
ML(H/QI@1G>M+H4O5;F)?R@L?%R#%O0\VJ=;\:,*_$%;HH]!F0_G@=/N.95%,
ML--A9[8VK]0S^+>W00R []@LTM@:=\S7EL$JE;!C>L9SN:Z6;L'O_&*;>5 J
M+%<NE$"Z<]B=FN79KCB/OOR,EC^A=,5#,TWN;!12Y\LQGSRJ*K>0MQ))A*D0
M94RRMS7#  ZKT +O&QM5'*>%S,!;.@OPGS4^3T!Y(PD)7S]/_D"M(8?%0@F2
MZ=MZUU1<8RTI:)<UV?DY,F77A00-GJPZ%$OQ\AU6(G0< ;V&/CVTI;GCB&SE
MV,O3>[=ZCBGX_Z8]&UP=?#$A,GS;^$7\V^0[VOOG&Y##KT9V&QRZ^>0 %&V&
MKE"I<=K@>V\8S?0OU_L?-,>588ZOJ8+LJ>^S%U]LWWM3VO]]K<VL5F]5P^FU
M(*X^'/>@;+M..F2BSI!6;EHLNL)KO&-8 J%+08(_ V;N7FA9-BA"76Y\]!<A
MUMA7S]*N?7B!4CAEM>]95_3=!_;L0-N@S)%0,[O 2K5JQ?8?E%@40:N@2MF"
M^7@76QTG(!9%Q*8G9W?M+N;4<7XATE2-RN:_Y!"R!S4=@ N.@ >.&UHWI7_
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
M>WS"K2O@+WE+H\)Z@4(J>X;'K0)F7,H^*!GT826[SD%JBY7I="1B^2V$E\R
MCW\F&!?KM7HK#L#6YFM'_[BY%XZ'K/(C3HW9]Y<:>)'AV#KDZ(%&SCO"--G1
M<5WK?0&K"_-[1=7Y?5>V5;FRNP\K</4#6\*,:Y28II,M^T_MN5L%@=Q_;NL3
M42YX;,6W_D'J3!VXY/L)8MB(.^,E3;IGQX$,VM\V9%;S0')5UU;5K$A V#H
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
M/^Z2GB/FBI1/#=,?=2G%M<8'8C2Z31XG2@!<*E6$<?/GB0:UGR?22)>\3Y2
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
M]A$0Q7D[]3I+DH;E*+N/TN0FOXBV:15E'4Z'$0WI!B3*(=$@2'4K2RH1#9%
M24S"V^G6 M=6YB AN;YG<5QOZB81_A))&*=#?TR^0=M1,@V"- EE2<4F(8.2
MF(2W,ZX.4\T!32^;:I])A7.J/H/J;OD8O0RG#+W69/Y0;1VDY9CU@<3,HHJ?
MV)2WT[3' D1E7>R83@,;H.T5&D"0RA=*(M8O#051H;?S,^'&3;B)F<SFS,)V
MC+<!\W;&ACDLR>52%XPC;3;(8<=- PE2D1+2R.RL:4B(,KV=H)'[/>ZC'2Z[
MI:N3#W1<=*E 0:I42B*I)92*AJ2@>#LM&Y<$,37+ASLJEP47JGZEY))2,0L3
MT;*WHS!&J)NN:CE@?CI!V$I7DE [D6"D?H\G:)SD%[H1J#2123P*VR TI#5,
M.1H9A[=3.N'4+YP;)S/96YCE>=.[MU.U?2(T/X>4"]-+&I]&YJB,/+(IY*Q\
MT0_>#L7N"X@6E6J'*]F;:@ZTIVLN)^Y4-!^"6&+00S2+!QJDFA6DDXEO\9 1
MI7L[M>K[$8MTM:[NEE_*?5D\UTECP%)]M!%LD'I7D4_50QMA(YKW=MA%[GX=
M*'GX<ROO\><@5<?@6JRE8T.B$&]'5^2UI\,],*/[)%H5B0%;\7F 0:I16C*Q
M8GFHB*J]'6Q1KA^Y>HFS&C^URAB7*DW:3I)K$J0A:$@K-@DYI*1NQ]OQ6!/O
M:CGDYMZS8+II]V.8(/4M(X]DLOT8"]&HMZ,P@3(%<D]$A<;:8RO.VR'6GB6J
MNJA*"EHUF@HYJL%?*6-4KG%^-_H_O'UZCK(FX[NZB(IBAR9O:HJ>2AMRFBC7
M)D@=Z\@K<9XHAY58B+_3J-%+ &AQY\<+>:"#J"$=-$@S4)!./H)(1T:4[NW
MBEQ4MQMOD6B?#EYQ]U.02N1P+^/E=AL3)7D[8+HOP#9*D]ZMJ,=4^-&G8PY\
MYU.02N)P+Y7UWFE,E.3M+*CC.#/BLTR \68C[ E2*(G2-F,T&7H[/>)ICR?N
M%'1FIBZ&ICS6!;9<-F\)#%1%_SB\(JK]Z%)9G6OTY/().7S+Y!+VFY,;,9I#
MF.K];_AF?Y#\_J8JL+N)?X!Y!5ZJJZQI]?N;<G_SL6>-7F11B1\1QIF19R\I
M\PXP%MQ0SV,XERKGW$LW,(&^DJ&\9%1+:+#UK&",Q?<]6UV.+GOW(9+])A.
M;"XI $YG6\;]C0-5,A4&)62BJG.(L=E'4C!-4*5_?@A'J?UK1(VT.A++0*\8
ME^]+SAX OKS\K%]:^JGG=I 960Q)YF0>I">OB3,^H8IL776/<38S,P_7>"#_
M[=V@(]!B_]7#3:#]FYKG:T'G:T'Y6XSY6M#Y6M#O\EK0^:Z:$]]5XRV6UE_"
MT0)Y5S1")$TH9_B6%O72$E$CZCTF[$9!6H.6Q*JWG;#1^KX1M,]GPU1Y5E=K
M6*3_/OIF5.M@ 5.M8@P\ 6L02*AJ!6-TOJ\ I?%W4Y:UE.;[@!RM$\#):)PJ
MF9ZV"2K?5X#2>+NKJ[**\J3S!AU'W11HCLY[T)-1/%M&/>WW\/F^-+1S68^D
M-Z#08GPAUL3\ '59E:[-$GH 7B\K;9D4+/\2D&,SF,C"+R^;DMJ92[ZWH.2(
M.>IZ+X!BJ3GHE5Y.)@WU#M9X?[>3CCACK_ RH"PMA[^V*TBGH6_:JN[O)M+>
M!4LMKPV; XT+X6B74_7A@M2UK%R*5U7U,7F_IW2NPG93A>WQ M/N?8G; L1I
M\Y(>^G<&FJ[/D[,-?MW[W\WOS/+BH1%81CN^S- 0;9BFYJ;7E*X_-"3L_?K5
M:RPJN$V?<2UFOP"O(V57FH'IZB-HNUL'09#F:-P38L/3(>'_.M<L@]]PU/\:
M%I>P?JJ6=3:N76#DQNJT);.?6ML@;<I$?HEY3 V[]TM<Y]Q<Z=S<_36M<V[N
MG)OK.]EESLV=<W/GW-PY-W?.S0T\-_=@KDB(]GHL]/7 V"G)]]X3P"\)[.\)
M\L/+&NVS .*@.5;LWZ@^YRP;%8C'^.P67(+]_]_DX\R\!<PRM#GY%A7#8)=F
MZT.9N6+K('>'9GT@4ZRNB-^W8S(_$:&V=60^$1'"TVYSI-M)I-M;[*1A:<_,
M95VD^>H>N49PGUG3?+O;-A['U0O:2Z?E2.G:[;M#6ZU]D(9BV@^2$X,:!=\I
MT0R6]R/ P+HD$/#-BXM@2O8EWQ/:!L8EX3OMFC<H%J"LBC2NVNW=&?:&FL?/
MD&>T!&E5CS,[;*&3F-SDT$W)%G5[R6SJDR/H.VF<.[;L&:HZ/IEY\O69JG8_
M&<ZB2L;J]TV_CT645S17 PORA/:="3X/ GG9G$BU_-,7<$-471/51A6N==KI
M'4G#U";F.[=^/W[PD\F(J<?H!;_6@W?)2 ST0_/U?,C^T!8-4! ;U$(1INV9
M]X:$S6D1\9W8?Y;\LRZKYJ3Y$3+>ZZ8/F 7X5YV6:,0\@.(YC<%^A"U #%?[
MCJ)=NWLJ<H?'V%V3"]+>3]S+$GD^SAGR7D7!>X8:C7^0KO)]'E.\>VSC/_M$
MS>:OK!'VV$V,I\7=$NG>U>F 2)!#Y20]*GEGJ ,VO->9(%:.D@RLF?JM[;+!
MMR!MA\>_6.6#UMYK1>;<1OG<QI^GE=NXCZWAZ07F> WFY3?R8(?ZIL.&GN<H
M(:%DKB,=D^\8]( K:GX<%Z;M! 9, (F/7 U".>FH*J8AQAIG()RLID=9@WYU
MS<V'U%*V7%JDDKI#R([LA-:I.9',[^.$!,_YC_PA"L6B=!5*139(16!G/)[Z
MP(6Z^Z6J4PKV<-3!A0U5S2HB2JE<@-#W"%Z "C$*DJNHR--\55+US@=J>X,%
M%*JFI8224C$+D^_\(LI- %3U"N'8=RJ$KF19T:3TS$'F.]NG4^S*.KJAS^BJ
M[<:%]*)VH9J&KNARL[X\\G$:3R E#_@5O>L,?G-;\7 )RKA(F^2FN^5Y7:*)
MM'1+\:'>;*)B=[=\2%=YNDQC? G!OL@7!V915\0I<,L">?3,-9WK] 4DHU>T
M'8DT>JW8*3VDL:(&2>?.:K=&LS\X6X MODK@>&64$V+(H4B+9A@^1,_8H\ 7
M93BE> Z+ G[#I-SV8I.@D\=(,C0/8JE<C[/V-77'UD$\O^'MD.XZ$1EB7<3K
MJ 3W!5P5T<8IR8\ T]BNT_@,^4 W^1(6FUZ"A1.JM[C$QJWB_EY'106*;+<
M99WU"_V^Y%&==#.8'(WUQDNX1WQT0VFNE\"G$ORKQD=.>"%R7-.X0WY.">*Z
MP-51:?GU4Y1'JV9Z:YX90-T-5KO+M,31B]KUX)%:_$_B!,BQTISRG\P;.0&U
MOD]R$O%&GLD)J([]DQ,0'7HIIR Y7M)/HM/#PGX":L/E_00DF2ON"6COU]T3
M$)):?4_ !W4/>HE/];(0EH#Q#53XC?L"H.[!N1H@(%8[DSMARLLS 8S[!6\9
M5P3(-S@\%B!NX.>!! 9?C,M6I>%%<GN_A%5!A5!=[NZAGYC2_B$%(07?H3\F
MBU]*L*RSVW0Y?EA)NH7(8+HMIFTR3-DM&DV7AN^08?>&UX%]T#ZUG='_- F-
M<Z115VT?F>_0X$.\!DF=@;LEDWMJVJ5B,Y*@)]WLI*F::M:@*;NZI<@3ZD8=
M@\_^9 ISOGM$9"DYH HM1*M-MX7??%!5*^*M/,Q^Z&6725+DKC]=2L&Z+9A%
M:LZA0@N1(75;^,L\5;$(G@$QY9>:M8[$N+;3)?(J;6>4W!F2]=!R6>V;#S>_
MU9X!A9#S^@AA5E[NWTC^!+.$GC(G@"(952RHT/QCRD0!9864,H4C@2;3BH78
M]_SQ*8K7R%<K=EW>J08@ =GV#Q=R&H8@+ZR&,7"1&\X&%3[HQ%I^_^'G]XVF
M\2]_7M=%WMP(@DC>+9=I#/C*EH8G3WR(X:>A>%7!-=0O0<)P-\TP IRS5U>@
M>(#+ZEO4T.=;@7R#8_F#L,$T[$!9= U#D*'A) ^W+*K.VH#^.JX+Z(\_%_@Z
M9,KV=?0[290__CZYK2A+)MT-9P>?$[].1G7TDH?QEZ[Z3C(ZN5O L28@C^NN
M@@Y-#QIPZE[9T,%H?^%#"[2ME$@-W(T12Q'.MCD"57Q"G&WJ#=V?I7TC'FS_
MFZ<EBV;\D,_X2!E[J,;K[#?S,3(^12]L=="^'384+P&K@\,X3QW]9N/1<>*B
M";ETB'TFC<=,B%M0E@#<[N^L/R2YW#+2("2A6VT)H;T40NW?_LN[B7=[1KG/
MS<HTZ+T]RV_@:<C)Z@]JB-T=FP(ZQ_=J^?@-YU3&MFW\1D.;5):O&HX7Z6I=
MW2V_E/MTT($Y:+9FOJ(A:!V^H9AUB*+5*!/S?1@L8IA8__#9#>5VD@;6:3=]
MTV)U@F6CZI#QG9:QEV9@\P#W-?GK$10;ZJHMVZBW>(L;A6]%6N(KFI L#=]E
MX'11:)D\$I!<-\]'OHZR4<B(IV4)#,3=4NXY'V<2^3@RAF*<@L,A,F?=R)C+
MG'4S9]W,63<3SKIAQ=FCN/&\;_+;J/P#K*+R,WB.DH@>9)<")A%V ? TPJI*
M(NO$U@7XO<6#)AA.E?0D9"*H G]A#IK.0=,Y:#H'3>>@Z1PT?85!TX\0)M_2
M+$-NR_#JCG *W1?@&>3X!<3#PR^7:1FM5@5RHO;W"+00'H._#(Y&!V:D>%,2
MG!1T"L&]%*?2N6($?R6A^1)[#_M**PZJ2MR=6T14FB)7$7;?)Q$M0]>HWRY@
MWC"%WT6[J,L*;D!Q]1)G-7XA#4\WZ#_)^,DC PR'BY(U,$S M,Q[1M7<M"CZ
M#ADS!*,%:61 ^7.3CS"-A>E(%*@QF(OZH1J/#^<(_-C[ B9U7-T5[4-S]'@,
M$^1X)DH!\7I.(J5R*"6=A$ET@RP4=#YV*"TG.#FJY:5DG8'SX?HZIL%YC96P
MM0?EA1L<:HYP=E1+PS5)_=(B&YXUS(AGZ*E8%+904[+#Z 3:B+:T'M$6,8<9
M7.WHH0DQ)(E+\"#]!24$8Q&JB$C1YAAU$WW@H723''H/R[,:.8?[!RKSY#S*
MOR('D:I4*5@R0OFP(2M614QIU0J0NAFO%U&9YA!1^QAM6$KEPI"R3#I,R$J4
M$4M:>0QD;JILR9W7A(V/!:RWC&=JA)"'AVHXD"&K45Y$:65R4?HHEST\,7*\
MXC;*>"^ LN"&KW^.X2:QSY&54V6SP\'I(T367DO=98;J$0OAB,K9</YV/&(]
M0GD)>_74+,2-IMD(?>Q]C#4]VAOXUS7W-5 M9<N]!JJD;MO1[Q+$/Z[@\[LF
M[E7L]CIO_SBJO/WASR\/ _T>?V@EQ#]X6GG%8PY2&.ZIA(4!JP2W=%7)5H$B
M;Z9XQH.<'(A#P1 %(F1%B$62U@P5U42"X./X,HEPG$=9E,<A7?H^YO50&W,/
MBN;E L3PW5.6[OT5GP71!UYY#%Z];$&,GQY(\?X'28]^+9?[AWEN&=%S^XC[
MX4(KB#V&7*EL,\+R*DWZO21HXBNKQ[YM0*U>ZN4*66.J$XH5,!-(^)\OL\[
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
MB>DAG(K)6>@N+1/4HVMZ?;\;DWS\!NV:9 >A'9-L$+Y:DQQWUVE,LJ%K^ER
M;9-\7*-)/%I6HP0\BQA-C;*+\15:);/#7)MEE[#W9PP>0%RC_1 69F")E"^'
M JK.EW M@RV I(9["+P_4=!GE%;[Q(&@S@4^:I>41[2H'$EZA XJC/[JK\)(
M6^F44B,V %7E 109\=0[TKZ@@HB":ZQXA^5!VIK\'#5OH8UK.$1@5*UVP?Q5
M^7 T-](K4S"V=DG-!1O1Q%4\*D'QKF1:X8V>EKGE-6IZ=G?GY@(\PPQ7/?1/
MB!]2D$>WH#G*^UC >GN;Q=3B&>WVA]L!E=L'X7U1!C,T[PVVA1SI[>_Z4Z;C
M>Z+HYN52UG36Y[9CQI]#7L\%PDBLYF,,OE/@NQQ1IW@V $6'_E=NIHZ@A"A=
M#0X1#=47RDJMH<#1"N91A;1U64V'W/583HLA/%QR7Z!.P2Q1UV/&UU;BT5=/
M:REG@$&1#"RM'5?'47O?0^\:(/I1=EWG27FU7((8E\$^?(NV3#4JM&B[1:I%
MD.I6EU5L E(X?92E+Z)\1?-_1K\3__CX>\@>#XM]"5>GT]1)L9:,0NA;F_&7
MKE).,J:X+LRXTR&/ZZXN#DT/&G Z5]K0P6CY]J$%FA<B4@/7[V IPM>U&6TF
M#_UY+-JW5J;!-T\+#<WX(9_QD3+V4,V+5OUFWB^J>*A@_/4FQSF@:#7#MU24
ME)]\/JU!O='SK"APO^))_WQW!&D#AV??HB*Y93V\80TA]RY6-81^;Z/M\%H^
MPKLGG%;7I F?Y<D#*)[3&)2,:R[,D(QZ4 V)KPLG[5D0M-2#O>O@C-GKWZ2K
MQI;A6L\X4M:6Z7.-]7>WI$QJMN8%"1*F,P67Q"L;!<YZW^48L<FTFZ",-J]7
M+V@7EY;@OD #_:P\%HS<+:^CM/@4%5]!]4>4U;@D &XV,&^D.JLNT;;X;OD1
M$6 O&AYY,1V3=GCYO@>O WT&-,KM2.?[MIE&MB>Q^$]C\;=IL<_>:Q)(:9.
M3;S= 6T'[^L9G [ZV=% L\.I[^MUM#ND^9\_0(EO;]X+,[J4WP%JT[60BOKU
MC!XWO1W02D5EUO>=1>;>-?Y:GM75&A;IOT=UG\[P6]OMC?!_WT-*LM\#&E=L
MCL-\BDI=I.<HS7#4[1H65G=ZDF0L#[4QF7G$R6LAW($W9MSP<BJ;+_2(9"Q9
M0@K>[;&#=_R:CRG>T[[Q8W<@.>I=!R/''J?=^[B"+_3!9Z@XKYF2#D/[1'+8
M>I]">3O(DHE!KNB,AX3,:#<9<SV:OM/E"#?4+%7ZQX%M^$\OIFH1"MCOZK>+
MH*NB4-*)%90T2H#QI"9:\HZ<GK@I/'Q-N2O=N?I7G5:[7D3JPT_O_T)-W9&"
M;643P'KRLAD#!ZK)1M/;,6M4@,GWD-O/V8@ 9<&D?FN%'GQ[?4LF3WAG:^:
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
M?G]4.Q_A$4LT'%6V\9+19 ^ORU$499G3L>.H=QV,&7N<DK'2I*]4[W^+,X@
M?W]3%?@2(OP#S"OP4EUE#;K?WY1@A?_AZ8WS+,H_1QMP]I(.S\YIG\C+Y;U/
M+BUTC5H6<?T$WJ)?D380VH'%6K<QR!6]9WNV:#=OE/=HDAO"?4VXA)O+9IUE
M6$;_X\ VR$>G7@"QB;=)CY6]:5"U" 7L=_7;1=!5$6DX(27]^2$,-8%E5&>5
MCIY&$LAK"C<E98%V;XXD9<4Q&L[I,\!D/_STTR]XQT+[\OXOGP#%MS?$TO:'
M-A9/?CIC&$);_4&SCSTM;"':-'P/^OVJ@0A0EFSJM[8[!M]>WZ+-$][9JCT@
M:CC+>*Q9. J2)]QUQ24)X]H#'@E_C@C=,HVJ!:3[LFOY/3[,DOMY]'W/D!,=
M!",'9]+#@.;HG70<</W%DXP$"VZG\5BXVFPSN .@D]=!=T%%<,3)9,.%>MQK
M,H="^9Y1.I32X*EQ6MF\^)YT%Z"LBA3':!KFOJ"N*!</7ZC&)@7;=JL ]I4:
MG4H/G<+P!/R,9[F_O1LHY!;]N?]"^=!3%7BI0)X<$^%ZRJJ0)"7>BU<@7O\8
MP\V[1E5HMP8WX#%Z 246'.98U+OEX6<</\Q+< FJ*,W*-Q[&QQW:$B%EY*M;
M6)8745'LEK# ?5Z.CL[;4:+0HK4$J18^)H>A'LY!CO1?74"TP\YKQ'#+.<R1
M??Z?NDC+!!D;MMPG9'=(W8.NL8:O[3@+^#Q-1"I& NUW7'?ND6 %3R466#!<
MZQAG>6S^/\/JH7[Z)XBK1WA,)Y(>KOSFPK'+:CX-BS/L%@T#4Z?HYFR8S8>)
M,9E8TJLTHQ/;$,^ =&\L8!@0FB,O"I"@N;'#P-D&UKG$=*37N.TQU<;3L"&C
M+M$P(E5Z)'/@!%9T)$O-T59JP[.9<9L)FXJ@ VQ9R)A,:QC>JJ#W+AL6Y1IU
M)M53 XAYT-F%7:,_T]5P4C)'U'/8]1!-PP*M=96VBZY'N[55;S7%;!%I^7^2
MT$+/RD>NGC4/2I1B9^PS]3/C_G,2B7'TQ7L<<A?"<5TJ_Z%X6;-@^D_\8+L
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
M?:]"DAPV"2$9^0<'V]_Q_SPAXO_U_P%02P,$%     @ <XMX6H,\'5JCV0
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
M7N]2S/9%7I+L\2UMCV[0 /%%& >-J,I0BG3%$2,"03G"/1XNTER#P;</P9:
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
M3(R*8D@>J4*?,E[@XSAE:_U,1%";GO<2["3Q;8I;1'7%C]!'DFUSLMZM7A/
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
MPZ:I0E%-?:'B/)17Q#AGTU3L=@+/18;$8ZBDO>TT\.:I"C9Z;NM!I^:T0!_
M9;^(7:)YJG#K!K:PYFGGSMXO#,7FS5-G4 ZO>2H(TJQY"C!@7$?-W3P%Q+P<
M^>V:IRJ#H^:IJ.8*LWD*0=4D\D]JGBKL3,L#WING]>4)E^-KSH3/]@3N/K/G
MYMB3 ]KUC&H8U9&MZLLW*?WG-T%<NR$N"*+Y?B,X[T4&2)VK)-U>7S R#2[0
M=P=>HO(6"J!(QVT,JS)];U2FNF7Q(]/@,GU_X&7ZWJ9,W_NI+*Y6J]TVSE:"
MJVU$C_B;]1]98E'DQ[:B&-A40; G&K5_A; '35@"1/WE^MCK2G2AIRS 95HI
M)&O;JS4+Q O>M7)-ZT4N9YLK=1&XJ0H57I095*JWOV>,K?$EY1/.>5)%;_B:
M><\W'>O+EA@4PR#KRL1[&7AYT+@=@])YF82<9H2I\QQ=<."<OR+@J$:*K-#C
M<QQ(%I-LV <JKTNS[@9UH!'-1A[HD(U6'Y*!?0_0@,L?PBC-\(M.#40NOX,K
M_")@^D&%9_?*'O,/,7YL21:9/R=-$H%Q%1]&XOQ2@ZS]A5])[1?QTB(B^L_:
MQ_-0J@O?V4O::3M"9MRDN'FKH?[Y".T?'%YQ*QH&)F4>QFT TEREE!F?\^\0
MRTK/3E*7S /PS'YE$@OQGBDUOB$ES?$M%)4<KS\W(N:Z5,4LSRD4NY<WA)/Q
M[& !NRG% !M>3Z[AN^6/L_7Q^AGG95+L]\Y+>D1F2L-S%S1*KDYC ,7F[(P&
MG3?0R0UJ(U'G63"'X1E"0732@PF(.,U@NL)3(<S0M\P$0[\3)YB35D@TTPTB
M"=M9![E7)RT0L7WE1(1 (]JOXPIH6DQ58@3TB0>S%&/!WF3%,L7OM+FAL&^(
M =[4N!H-Q;*'GL=AIP-!T<PP1X/')L85&]2K.W[BVYSD DUR$PC8@EOJTQK6
M(LM*0(\5HNHW%-*8D**0".2S#@ \DNOA5U_>RR$7.@L+$^XB>KZI-5@L3I ^
M=5)6HUPSX AEV'-7$5BL0PX83L6J=4;<\(4<LZ5MNF50>E_3 ?2NR:'M+%(8
MS4+':)*U#QS!R=O9X24[VU=X@*[P67M>>.^9]=G0 D_V!T+WC:I/@>[*1OS/
M0(XG%9<#T7R^X1G/'9'^Z<ZJ@EP&@]0,IFV/^GK4ZLK9XGA7/I$\^0=>#T$)
M$FY0JA&VA2TH%FL<Z[PH@:U6CMKGJ& "1_4E[P6*6QGT)LGXKY[[=\"B)Z8%
M-&"*4J=''3-T>>/215'L0#SJ"RHXU C.P)]^#'-PI_5@RANN*.5,4CT/FR^#
M(M9P10@(!4]J>1U').CQQH^K75F4<;:F33( 2032"J;TI&>@BR":.3C3=V-*
MG*ZVE#UD+Q0VA40 T/!(CAD%F3I*.D:I4.:!5M=Q?I7?ENR X;_&Z0Y?X[R*
M4\DNG9*09'(EIUS3Q>:6<@IO<.9)C0P)B+9QCIZ92$6[-4G3."\0[:36% R*
M@5J02(D(A)>0CS)=.2W!N%R*G=LX6=_%GT>'P(@>[9G6>63/IY$?!ZSIVM1P
M8R\:\;^:U<\E^]4[RL?%0-2?;X385F* 2WDI+H0^LL)X77R@;WJ99+2VXE?H
MC:"HD6MQ*96S!JDF B=CL2HO:@S+]*+F47WR0G5]77OOM'=DZTJ5&!3 $/,2
M\3X!%H>+VWOM=%XF8::YXZX'G$IB?Q_H:P".ZMH[*_3XO.^S$U/5VKC:5K=Z
MG'_&^2HI!$,]0'E!@I7(.V2.,B+G"5?F#4HBL7Y]^$V.5SAYINWJBDR8/V5\
MJAO:I%8+AU9J,$CH!4&0@&%"-1G3/*%NMKRM]&8%/6$>KR01%T6M[&L$'C"_
MVZ//;[Y_P$5!PXG3XVQ]2K)J!>TMSI^3%2[$:V3,E/:9'Z1D3T2#V!P0$>9-
M0T2(D:@KAPK^U#OQ3)! II;3B'T W0$%IX!O*0IN<5Z^7%. E-W;.7_*QTO(
M8<)[RBF%[:D&B,55,TOM2L,OE7+T(?G,K@<,8'4FL'2):1F,Z*/0&=#&'X!<
MMY@ KJ:C:-]6JH2.4"76OY'X"%6BKPMBZD:2$YSY;1Z) QL?(@81U>5E%X>,
M0>*8-R?K3R)3JO;R<;5TF'5SX]5JM]G55[>N\9;VAY.8M:+9L]^_^_'HAS_]
MN6+;[]_]^>A//_PI4)))CC<SP(Z.6X/CS[Q!S2AS/^/\GDQ'V^347>F.\?9Z
MP&.:F0W08W\TI\JZV4F=NBV*.D]3P?/^58-'<LJG"_",SP!U"1[68/A^]I9C
MQ]%4_-3ZNE;CQ]<$JE[9N <6-Q]46U%R_ )87M=J=';H CBBV3@%/&I!KR]H
M1(9RU@*\W"&44I^PH%4#\6HY@+G=F09R9X6S0>OQE6/,M#4Y"62A]?2O29JL
M7N[PY_*$>OX5FL0E:KI</E*;BW&2^.;EW=CI)/8-S1S""*X,#Q#^J;&D8^%
M&T1&7S!<9LQ7XM0%%F'CP+42^L3_R[11I1YJM>$0O5,&C!U V.\@\G/"YAX_
MD/R,[.[+AUUZO%J1758*IO>THOLJ1"%JSU=M' [HJ?*A8:-<-3I>KY-Z><KJ
M*<X?Z\48U247%0_Y20+^*PI]21.S$AFQ2:HQ8! <2 L='/#"&%S<D>,5I7..
MI20?TL=8L3UR *YH?1Z!:8Q*L/U8$RW#CVQJ1-DJ,W&L/M  ;"@ZC;<).U6V
M(AVEY2[W3CQSC!";TAN>E0#5[Q^D$" \W;;5C-VZ06C37N,*[*-S%31HPQWU
M&W%?!HA5C;69D>RQP7:7QVM,8ZD/,.-5X4VU CN^3W'=LASPQTB'?TF@CB6C
MC2*SY3'4F8J],!M1VY;)VT<515?U1@MVB*CONL8,%&1BF?5Y"5+M4G(:"A<A
M(HV"?MPDK9=Z7#W\DM&R)H\9.P/E+OY\@C/\D)3%^>=5NF,;U(\W5?#7-*'$
M249_N"/GG^--DE7B-Y@V/[+BAJ0I;>K^%N?#S2Q+N>,%-K\[R\RQU/>P33H+
MQ*G*5[.[C[H6V99B=,]MHD],#G%!SZ-'B]&'+ _1?HZ=VVLW/2^>)1;*[-52
MONN8-OW.R(9&.LK%,H$V>XX%K/.=S*=]AA)85N>4D4+$?ZL:.1\)A4'])Y-)
M,$T%M9SW)" M-P+YTD.B#>7ZU-!"8'$PT]945L0KQM5+RKF+$F^&@[Q0<0'0
MQ>(.8:^*QR4))'Z@E!"JMP2I1%!'!GUB4J@2"X@?RL*7L 4 & %W1%HR)H$P
MYI-7Q5E2K&CW;I=CV;3\!$TUV\2:\Q!/%>5,')2XG$!'H:66F=N*F65'/$@V
M*G&B)R8 9FJ.B@P Z H"Z2+,O5T]X?4NQ5</LE!/7GI/V$C#@"56-OAGGFC#
MDM=6D=LR?*IS%=>GV535QY6$YZK8#F#$47GW$\(D4]W4X ;Q"U7O!:;%]'2<
MK<_P,TY)->[/]V(+!]D---KJ'*!A78V#HW*RO [F3UUWZRU$Y]DC;?[A/,D>
MC] :%\EC5G4]MSE9[U8E_:G5]%V)PU%!)A7;L-+6*O8KZR @Z'2ZUL"?)0[Y
M!&TC62&P(XNX<+AKZN9#IV)RUCU$/4['-M$)+Q(1/QQD?T=7B8A]N>(2Z#*1
M@7!T\[_BS?9?SOBI>H%<*B(I$P&Z5=>*]&5$</5YL<@-9L/K>'T>YVR0O3C>
M[T\_PP_):G0$*5RA!:]>P1K0T)CL00[PI :^UD#4R"#,A7S3 %SB9$J9#.FB
MT^M3R!A<B]#J(GNF-0_)7_1C?!!1_HG4HI8D@L3AI-VO<:1BCU(U:IXFOM?+
M@(J4F'WZ/DM4&EU^>$.,TV8ZQ-%4V/"&>2N"]C+H4S"M;Y>(4K2W7< JQ&..
MC+<]&F]X7&"/V:1L;',DC?4&Q]'6QF.^CSW<HR"F[0V;NJ?1;"O8DAA;9@>C
MF[V+1KL6^9A]. ,K<T%QR@;%B7CTF/*;>0)VZ#S[QNQ U'J!V4U2_'KRPO[W
M0[RBCF5U@(6%P>R<D05'<W,3HG;2B)_F'S(Y9V(QZDGNKV5 3#B,6;DIL!+,
MR4U'YV!&SL"0:#XN<(P[K;8L_#L&.J_86LT*Z4/H,[TC=/]2_0/5%H*K[?S1
M0E$?+L\-GS4F7M'NVOH,WP^'=@5/FAJN^\26U6,O;FJDGETE 3N2T4E,Y5:X
M>[>F9X8(2H$H/]\ S'N!'DCG*4*W"7=L%UB.38*L?T'LIT,I155>TA:EUSSR
MR#H!-WA+\I*R1C_2;:#1YAV AC68P5$YRE,0?VK<ZRU$7 CEC91O/L#+GDPJ
MG"%UM(I]2@4!-,?9%.S/$FUM]JTAUXJ&.98^'Q25J=PU'@,8=+EZ&,9YD3V0
M?%.U?D]>^$/=P,M$*Z.ET896G"V.GA2]N^71INYA"Z3-K$976\SZ/)3R'Y*,
MMJ>3.&4+7W841JQKRA7"Z'I.Q9MPI;0-=$=KI8V,B5=+VY' 2\.Q$^*E9*NA
MB8JDZ2A6<5REJ^)R79U+?)E4Y4(3@FJ\(Q?0%D0C4"@J<@"8))6X2%-5BX,P
M&&(-KMS69&QA6LWM>$N3<=0+U]A&VYG@%MLQY$ZU+&9Z-93<2 2VT<D<<M,K
M;\@F)[ ABTK;WP:G6YRF[$2.;/USG/^*683B"U7U@FWE+!>TKI)U,=A7Q H/
MZNI7JACQ9]5:A4WSU'?]JBU-8O+=AW6I3+Y?@X*!LA 5V.K2XVMJ#><Y7E?W
M( LW=  D6S(H)*W9H(W"G@XJ%VH^R#6C^B$Z1NUC?F=W&'M#(,5+C,IA2 ^I
M0I\?<.PL0Y"G.,<G<8'7QWE."Q[S8S*O[ME"_9\(61>4S,V%Q9(KA>R,-+2:
M:,26<5:QNYEAF!J"DJS3C$8U:9-J6CQYQFA+/81SP8PETHBK<A^0?Y*M7EXX
M)/"[G?6P"L$] YJY$:;\MM)NCAQ&'3-'O:F2K^08XR(,AOB<=&D#/B4;U@2N
M^H>=X&E7L17A$#MF)R.R];KERT5&WV!7O61U0N[=4YQ=;:N3-'ZB)LKB(KNF
MC0FR_AM.'I]*^EF><1X_XNKA65SB#W&2_S5.=Z-.7VAQC>I_[W$YRZK>WV26
M5HK_MX*E?=]Q1M5OM )YDV1H3=(TS@NTI1V"@OG_)I3*PO=G4M8_H00GJ<T\
MAR>N(+U_L]>2/V=JZ ;R5@>11 7-\6Y$W39Y-?\A:K:SN(Y0'1GJA(:JV%!)
M@T,\NB-4QT<[P*B.\ @U,2(>9"V"6)B(Q8FJ0+]F\_"S.:B#\C6E2S_<Z^I&
M?239,R[H:X?3@S(/:?;.DTE(P=;[YM\54MMO*_+<EG%>^NDX&;V6G^K>(,3H
M:K^EYPC=X\<D8V<$L84/]9?^POI1$Y+!(I7NY"0U>U4+CVR96O8+RYU&7:6:
MTN>9\N[04-XJ]-SY;I \<;;^FC8/-FTNWD4YW+PY[I0<8N)DW:OWX8\SF;]0
MZ'FSCG/!T:4VM"]]6.GPLW2/M%\S-?!S'=00TL<=6YAW]5 ]+8YWY1/)V?V'
MKL:#=/9M!W?D]GU5FKHW]E;Y*0*;I1*3^HOJ)ZSY7K73"Q2W#ZN6?/WKH3;?
MM9!WD>6!O++-UC(W3E(OF+L'E4*?XR1E&V,^D+RJ(F;*I#(WCA/JV$T@>57V
M_J&D5T%\2V39D5M!LFUDT /)T6/5)']U65=*CQF2KX:*CG/PT-L<J5C+^K S
M,F^YGW_&^2HI<#L)?$?*.+W(RCS)BF3E=-YS@DO;3&WDTE?6GO!=_"[E- MX
MEI1N$D+4_HV>JSXQR_/5_A926T&8FUD?:&*?PBP727XZHVT3OH%G)\G_M262
M,-8T3@C8=S9QMQ*Q'0UNW7:7&^YSUB$/ !] 8IIC-6# V>D0U_"UK[=-ZB.:
MVQ=TWC25>G#6$A5X\%Y?2-]:F3I^K&N&##^RB]OF;6F*(IRW*AA[C*H?7\7X
M*P#O3M.PCE;.$N[(D=O\>A#D#:QM)XUO8?[.TG)KO>S;;E]3@@/8'GI>..!F
MU@>2/^"DW.5XKF:6PH.C9I;0@^=,K7CK0)I9X@CG3-,BCQ'_\34UM%2(=YA5
M]<1RE% %CEPFU .A;U -+45\"S-XAH96Q\MK:6CY2PDS-K26SPL'W-#J[-6H
MYY8=-[.D]ATUL@3V/>=HZ1O[WXJDB'#.]#SVI]LB]"K:6W+H.TRM.GXYRJDC
M-RXSZ@%P>,)^PODV8ZN"7)3'P[U^LHW27^EL#[Q#YK/'K7&RD,+8YZ:+;E$V
MN]N!UG:9>MFA]O(U"5B"]9 3P2'NO!J_RV"#6;/BX3I/1OEK8:_N.U5JK^%D
M=<C7";$#IHE[H0I &<47<Y[#1,[-D_D-Z.Z^*E YGZF"> V))O!>HB[T )(-
MM$?Y->=XP_:7DG2"ZK2J @VU*PN).8"4,W>W=W2X2N,=5>Z_YJT%V?&EY*X#
M[F?S]V"[6F>9D)3:=[O-LVO?^^I<R1N'M(&S%]T"^ZLZ_J*K_@Y,]NC53DK*
MX>]^RY.48VZW-NW=S+"/*60>![7T2QK=HF2>;V=DG15>PQR&GQ0P_Q;'A?+
M 2_VZKS+@G,8AE[=M\."'EHT_#H!I7F/4Q?0**!-N]<VG&A*N7D2__)3&$#G
M,]4/1GDF[ JC/2OUN"AVFW:'&5[1USM+GI,UY=!-7#JK*DS]V582<'^^J@?3
M+^*W,V\0[2SU MA_U/R%7A*<'NKV#6.ZN$CP$SEJF]JA;ITD]=>3%\(8'#"-
MUFMR<#=XL#\T'W5\5GOU*Z^HS4+,[]<D-#/\7W,F.L3A"-6[_96DU$R:E"]+
MM2_%'N=L80X]AEB7B+]*D!7)*-3%:Y%!!%&;YY_;!Z\PR4N(,W>:5_)USAS?
M=SQ[EM=DB<-+\3=)\>N''..+C'9$<5'.G>!5_N9([V)_(25WU1<)*K5+ ETL
ML0O]1^S7MP_T9Y3PWU'^NMKO2LK,E=@!/)TCK8O<SI;40;DAC)1>R-ZK^I\[
M&MIQMKZF//P8;_ 9V<1)9IK%+5Q $_<D%W/G:HOWGCT]3XO-*B-/<1GQZPTK
M$?2I_O6_ D_!-G@WR;KVO((FV@F>C'*K"_J&D4YE+W*99/BBQ)O"51-X9-"V
MC=LQZ*L1.WHG;ZW4;B2S-$/W#O@(]#UP!/I^/ *-/C%KJ#(7>FZ$P]E%^U-&
M$ML&9FO720M2SKQE<MKJ":]W*>;W3$W*TW=L1<0PM;FVVV0X=W9M$YWK-[3.
M=PX#4J8]9WZBQA1;HP7)A(4F%59F?6=!Y\@G,X)ND!-=F>^EQMDHNTR&+&G_
MG;9 +ZGU]#]V>5*LDQ6+^V<LVK,$DVZRF4[:-D?!HG&SH$CK2YE4--I1)8 ^
MU7_ZICBPD(EQ20SHJ%;JD<PODMPN08'YLH!3L_RCPE2<K5$EA[J"KQ9JJN42
MSO#F<ZD"BXQ5'%</IW'Q]"$EOQ7']T69QZO1Q<\ T6ZFEHJZ()<F#B>DDOO0
MDDFF&IU>?;R]NKPX.[X[/T.W=_0_/Y]_O+M%5Q_0Z?'MOZ,/EU=_NT6?&H40
M^*0K\B&98!#IDDBB,6(0%%%+,^<B6Y$-XS=KJ.7XB;;5DF?,?]62R41[S"^8
MMCO*F43KD(5 MT!B@JPIN7KU\_7-^;^??[R]^.LY>G-Y=7O[#;KX2'\^#Y&\
M1A 3\WD"2L<4AQB1L'X2SI=.!+?LXN(GDJYI\[^>CM'37Z\S)KU*QQW5]9$Y
M)+C2&9#6"AM*,O_[\<>?SF\I?]'MOQ]36E]=GIW?W/X3.O_/7R[N_D^(A :
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
M A&Q*]P^;4TL=+D<+(:=#BM-<>P*QGQ J?/YF0QZPZ2^.6H*#C6V4,?8$6W
M/M#GK!+Z<@"N&%-: N4>1Y.N<S[P54WB5(LM1XNKI!+M:BJ!A/7R*:E7)ZU[
ML7WU*JFQ1M3^6*\ ]KWV25Y2!/1IAZN;1H+]Y4R+%+OC.UNE]@W+OKV%M0'
M;;T$O'IXA"Z*8H?7AXH'Y?VIIJ#P>9KU:L7VVA4W>(639S9)_S/>W.-\@#Z=
M6'.<GU3,]G@^C7_KX_;D]I7'Y\G4HN8)VC]"G^J'OH^UTQ4E@7_VP;%S$NG>
M,7)0A"Q[U$"]*(/M2209_5-T&#%(=GCD@%C6U;$#JDB<'3T@<0(Z?D"HRY<&
MH?W/0>Q%@)6OZ"0" "#:54(*%>&)!"  +5-3K-<):YS'Z76<K"\ROF-;7%U
M9)LZ0RUK6W% (K&N/31.E%6(4C?:/T;L^5O:2>42H50GH*(FAB4RJ%A4*KW:
MQ0A+B]#F!I>T-XO7S5$[0KZHA?C'D E9,D3MVY8:4NLJ3DB4HN;W_;G!87!
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
M>D5G.0<:H^-J&> 6EDJTAMJYSP"'X,  $;+=$%XC6NOTQ20.")LSU7Y0MVX
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
M#C1?"@JT9R2H:- $8S;&?4_L^Z>[BJIOU5Y(M838+-?4J :5 3+%)35P@\J
M?.BK1TP'%56S_MTTP5C'8%=J[AH9&%04U+I+1N9%?WT5W.I0/) L+IY73[%D
M;4A#U+V&L$,$=0.A5#;8Y8-=[D;W#K8;55<.T@?H?QVR.-_$Z[(X)GL\^T4B
MVBZ473JHZ^SC]%M"*[UJ4(^*:3P]V[[[C0X\=! ZIQU$IS4XB\F&G5+"QP3*
M9HKE9Y)M,<N?[XX& *RJ$<.)E>NH O >0.NPCJIH!RD7UBS>B]-_'^+\H=K+
MRWEZ=%26-&(;*1N\Q5E&8\+RR8%OI5,KV$?/Z$=</#R0A-?C"&#]%P2Y!!9!
MG4'4@6-KH#U5PX(MSP.@B"_;:I;&R9%@LN"G@O%"7@GG6&5D@6H^;Q8EA4YX
M9G7"A23Y&^<7:?FROV4D[T;)'B4 E7R42IBYDIGFK8,HSBC7SV>Y,9G$I3 X
M]"Y.4<[]Y?O3+MVE0SM@/:YAHZK<([P@R*)9)V*Z0546U.@WL?UZJ %82N$[
M_UP.^X5*>G,* , ]=<\01(V\3U&6LE-35*]*_WB]2C?G<7)@1?_,*DZ-XM(K
M+67)!:R&U"CM@:_PL-7!K#24'==E18[V."L-*I0B3^, )JWFY(+5RM>,8R:O
MSW02J/=TQ\8H'3Q OQKY16NV>EC;PG5E"PO$>?"E1,$EO%*]LUN,T8494YO-
MW"L:O;66?N!PIP@<&B5V+](BBU/ZFGP1YV-W-/8NJ+F^X4D0Q%S)ZS< F2WY
MTG!PON1'\%*0('RD62!,W23UHWL>\ 8PX?%K&MUYSQ2&V)SY>)'7FP!-8_73
M%-["VSAE+\.4N3LP'=EEQN)^X^Q+5*P?Z/C2>EZ>P^[X'G=&5<$M!T:NQ;:<
MW\&YT):+!MHB6^,9+ZO+KG_*T;KQG/FTN@H)R=".\9BYV)8[" DD'#I%MD;S
M:Q78@K./B1=9/L=I7.#+^!%W3R":EO2VYM!;7+'@ #;%M-8:;F9I(]IL0FG.
M<7FQH:"+MS&?&W:/[\Z]^.N *>GL<"PT>Y-"8T;R">%X@ ?F#48[@=&V/Z')
M3V_I8 ;.4D?;IKQ 99L/O)%8# IF!<@8+J/,VM6:QQGQB66E?"5I.?TI[U>\
M2/,B._"ZGXU[E+Z1)/E,,D8/E:LR5JYK!HN]W+DVQ\=^H7FS749H[64/W5J/
MY=<#+]A$ME4%*_84B<=SN\S)S0QBE]S1QEVWS6W%@VRFOUS_$D9*SEBM@W R
M<.D[5/('<?>1N!BY(;Q]=^>;'YO54EZ3,YM[$]/;.Y:QP:2Q;UOD)&%O)3+H
M$:G]74S&H7)_[Z:(LF*^D+=6>[Z!2*BP;/RT0'?X/DY9FL)Q)_0%Y(:/L;#)
M1@JI94\R/H@ISF1#PPDY%*O(MK233ZG^'.I$6L_M4#YV/$HKJ^+-ETP*WI?O
M3( RL#QKR0+A7TYCKMQ6>&YG4NHQ[0R9TG+9;_YI$G-X^3Y*O.X+F0:+$Z/^
M)[\=0?ZFO+6@\$:2SC<(=2_GJ.;$ T8E^ 6=8S8W"+]>6VY^_MQTU8-^G7/X
MMA[ZODI'S7D,?K*=$R'OS9> 0_ME.927M=4ACCY,$>7U1/F+\QJBPO/^O>\
M5?[.KZH3N_^CZ&7]SQ<=\_7-PZ^G5IFC/S=][$>_COHTK#_TZ*^GZ%P.8+((
ML);XYEN\@/SE.9B7%0N*(HN'K'>UVS3"_,6#+6'AC0F2;Q%N3-A6=N)!H2E\
M>2PN^I+C0IFA^/7>:M/TY[H;,CT[[]/Q!:%'B!)5YW,'DT6)#9EOOL8;W%^F
MPWE9\>*GIWV<<383Q(L283[7#QO"PALC)-\BU/WBMJJ3+R$<A2_Y'R\\5I09
MB>^9OLHL?4[S:YG>)_JGX@="CQ4EJL[G#"9<4:QEOOD:;W!_F0YGQECQ7%Q&
M=1L]7<;179S$18SSK[A0W&QI3'^L)C=$[UXTSDPC@-IP@X(&2L -M%]6).SN
M+Y0<B8*Y#=.\^\F('NJ5:],WZU1EL\19V%.Q?@)R\8"SVX=(N).<.I9'G!=X
M\P>.[Q_H?U>/.(ON,4]=.8\*_#F*,U[9TD-A%[_:N4[V?&DW5U3H]VO/.YWT
M]FY>0DY/VBXK:B3(RPS%\A8V=)W%:QS,"!#:MX.,1R=Q:ZZQJQ\E08+=-\=K
M\CYAS-_]OML)>5^X%8+^L@#B&J*"JGB\C*O6<H$4?I^IBIBNY>VF;[[_9'V_
MC\6+5S< G.)6VN"7:&P5#GZ+R:9M8Y3R/ENS4RK86&',MPU\;F;Y2O,$!59*
M=A+--M0)15EY$1W?2#S5?40_EC_)N.O@D[R/M#:Z33/ OD)G>2+SJ3&O%+['
MG'SVU%#.=/[TYK-#]MFS3)%.VW'/."&J[J*ZP=ECO,;R[U'/\OBKY[>DB)+F
M\S.2%U])\0]<?,-K<I_&_XTW?*U;?(O.<#.I3(' B60Z#L"3?AF0R<A4&NM&
MSFET6/Z>9O43M&X.BFO:%F4XB40E@YSO\Y!] -E#T]H:F0G*[6%F$M'-4>3-
MN=1:@@;ODVH\NX>1A-YU2'T,2!K[#56D7;9?(": /BW0,R[04<8"K7;DD!9O
MCF@BV+\&;S1CR+I*$O(CHD"C(?8Y.=P5VT.R6J\9Q'.J+(X?V95>;+]A*\V2
M&MU>].N(]HZ>>[3&K@YXC&"='[7GMZR;Y/Q27/RTQVOF^]89WL0%2DB>X[#N
M?1J/+P+0Y6WG8\VFZ4C<@1[VGIYP98U2L)V9>E4L@F=LJ1W*? JX[M4Y*##7
M4K/S-YMM1=E%<R\+Q^,5ZB<X5J0O);O1W30A%F:A'(3K^NMH/4#66N&\5!CC
M43[PHGR!.+]@U\S'I)M9TWI7VX$(7K+I" 0IV??0 _^5O(\YH"H[#3: FK3J
MA9]<ZH8'6[,94KR9NNE8 J> U2#BT=&<QNA1O<,L \@HX5!CB*7PN8>14=]J
M]I'$5FNO@XF=,IUJQ"]N1!EG?)"#BHOY0XTK5CJ #BUN_N<T1I=&6LL<X\M(
M\5 CC+7XN<>8D=]K]E'&7F^OXXRM.J>>=N[+#"''&C=7 #7:6&H!.MZX>J/3
M&'$:=77FF=&,$@\WI[$4/_>(,_)[37,R"EYYS],;.W5:A1)?W* SUA)A)S@N
MW@!NBF.E!? DYV4[I&E/'WE2/B2O9'&B*!\X4E0?&FI6]:.NKE1"<GRHO2O]
MYO]F-:;7ZP1G3):DRFU)MF-97/R-\B^X>:FX<+8#5*+GE%2.+GY .DAHJ):A
M\Y6J5LO& U'5J\RC17^6%#.GO0SU)S'^^&VC51 W;6MBD( .UP,R1B!%#'XM
MN/#'+P8H&A<_'BTOLD*,.G_I&]Y%<4I_/R,ISYH[1,DMSG9@=S/XU,U[O9A1
MN@5;"<'A2P=>/6;<F\U3$F&,KLMOF/*+^>F#\H3G(8WIG$4<QJ+<CJ<3J(MC
M/P<^XYC%74Q2L,#=GWDO63!"Q6DJ%[QZ?WLB!6@<WNQDG.[DY6@:.DK6DVH]
M44-1Q#5]<_6GX^IG*5'SDOS]G M:U'%]C79X]11WIT>R1]725>N1ZU*$1([S
MTD.;IW:IH4FZ9'\A]B?ZD_TP]WJ"K N(_M-U%@T:%*V5 ET/3HJ\<\*L0H&]
M]L,.^JJ'0/AKRX)"8,W5!(."N(G"\J= <-CI#@D2I1W6P6))(T.CHD>GJ8/
MO/LM%2!QA=)G5?V"]C/7V@0R2<YU!SI,M34%6K1+_B=B?P?A$.4=00:^7^<0
M?Y.D=4!?VY.3@/ B79,=OBFB@@<AETP(BTOZD#2@%*^MI72$JX$6KN#5B]!!
M6==R6?^,R!:5E*BB6*!?HX3O+H2 >9.>)E9=TK8'38.F==C :$Y;D<831K1Z
M>P&*-HPT\60S1K&(OJVIW001MICU^K#MZ((:;1,#^YDSY/F*?X@"-'12>IV1
ME/YS769L7),D7C^7_WN+GXI?J0;?.Y >VUQ\0/OFCJ8W5E]7:QPA5V>@UNR6
MK+I06B3/*,[S ]M;J9NC?:O]O.8Z&D_$O8_;1FW+I6GGSK">Q/3/6#>P52CF
M@[[%^?<S7@",_:MC/0:4XN-I*1UMUT +5S/5B]!9I*[ELO60#9JBU%I&G\YK
M;R8]2ZRZH&U%F@9-@[&!S30K4QG9XZQX9JL2Q2KE2[Y[9L"_YWA[2"[C;1>E
M%BVJ-2R3%JX+6^9:.:]V&8G2+H$9<%A^RHMXQ\M"'_BO**$_S[PT9M'U9%3?
M=!;1AANV5M9&X&RZQ+"[X0V8._WI<%8RT7";Y6/'3&;4H)GD-;4&$*D%\WPU
MN(2MR?4?S!"86*-E5>@8'QLO$$XW+$#9\PS\ ';@9S+.[C[[K#ZBN9$^K2*]
M[?(W3S6D,WRJTSSZ!^:NX-*6&D?>&G[/(C'IS2L&8%FOW37.?9[#X6W_7MZ2
M0"<B(K?[EK"?[).FH*-Y>,6 @GQ(Q68>4>&_\=QC+.@;^1QU 16MYPYAG]0(
MXV-Y&#V]>2J@\11./\AAUJ,;#7O@K:_%7.7Y85<?N"^_ >1 :BS(=6 T$#37
M0&?\#68;N$PT]#(0#0M>5G^*NQY1<;H3+G-C@!@9;$W/U=,/R@/QW/9V'O:1
M=OX_;-!AB0%\C57J>X%9NQXHE[*>ZWRBYCUG.UDHU\G+F4"9J*7X.YQE>V@
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
M)'3?E1C0 <3E:\4,;":H&BZK9ZPN%HKX[[/O!PQU*+'Y]+T5? 5]9VE^>JR
M^NIA,>, (SQSC9J2@A<$+VD6B%*]# 1I?*TKC&;TK+<9CO)#]GS#DMO.R&Y'
M4GFN]Q!=E=^MIG/-Z1[2P#F/6R- F[NM;+>L'B'^+)!P9+@KB<57[V1DJ\A;
M6=C&&)G+!/@">G?E>9!.;0(5';P)M#7P8 *U $L3$.V.)E"FS[)=++YSE<^\
M=37<FWHKD':]V@I*\@$K4,!DFA [SB.1"!63]&HKRI2M[O(BB]:].-N,N@JV
MAZA=HR@S;9RCJ$$QVBAJH/6R3<!V?K.2!/U9$<T\<ICV.K'NFDX\I6_4"JHL
MH36G+6EO%K-JH[<KX-N1K#2#F=H:2AQA;MT+O_I&)PB#M+3A.XG&P$AO=>I+
MA@*"'^QLV4:B,P:K.;0*B,%=HN47F[IIMA> SKFLJ='/8GBP&!6\6N,4]N=@
M<<,V%K!AV=J3O069&DY0IG(9I_BBP+ON7-V47&\R#7(_9M/3QY/I-.6,,)]C
M<YT),2K$R<*THW[G#]N2"C!Z>ZI;&=B4&F.3V)70XAMFZ4AQ>G^-LRW)=JP8
MT]5=$I?*=D!MU49\,,,VCF9FI1G(5,54HL[JS'@LZ^<L_;LB0*2FF'FGS@X5
M9&2GM>W/J&G3" ."(>B4Q4JB,Q;%E$70+M 1F0UR=*1?H-6.%7-[R0#5S%O\
MH'3>BWKYZMH?<?%P=L@+LL,9W\S\BHORSJ7N>K%%B^.UO<,MW&]>-=4*9+ P
MDS=P!>L@A^7OZ5V<)'B#LKIV8KX0-Z+-;(,V.""C.JIW&>M0P\Z=K"& #OK6
M7U-YCL@[W@%<+M/_H*2HHEV4&2$+%&VIG>AJJYZ];*#JKPX&1FN@@\17^N&M
MQXE^(X.AHMG(H^'V=?,^8+1$CK7<!A/%L)&2]$/P0X<$&H9&J025@4D>VYI:
MY>1HG&PDZ8MTAR30>')D^+(!/')@<4%QB,/+*MU<QA%U97'QK,A>&=5V:+"1
MM_5EY3I-_0X]"LFCS%W*:\GR9M>5T;]+!$&,\_<B)3V8A)AQ0#*Q; ,D#MFV
MC(61B<^/Y&F&+9UD,#@/#&+U[V(TJ_^N&2UXE='C-0BO%/QC1C=0"YAQK!/K
M@=)E0,409].DO44ST 1F:=Q(+\@-FB&!!FOB>A;#VS/!&*X5-OKKX#:8:J^
M:UM*%L#GAZ*/31HC@:YX[&[1R#=F7@4DAW=F0'$Y_SBAWS?Z).J5W\8[2G*U
MO:&_YMN(W]XFRSR#96J3#F# =(J-6N-WFV03UT0;YPW>82$VF[\5-U2R8TE#
M389A)-\!P]QV^]C6@&RVE@=Y6^\]VUOF:?B_2T4Z(3QC*#]X"9:B"/^.L_O#
M2\.T1T!!H'[Q,I2,2@_XAW20*NN"<I*7LGQ.CZ8[S=W,?"FUL=(1X_P2TQ]5
M9S[-&U0W,!LT<+V\UE@GD,4$(W':VVF'&2PO<93C<%8+++J=C.F8SBVR@^U:
M%\>&@##8&Y&-Q;G!K+KWN-Q/82O,#=(%*HE?/ 9UUQD# W'.K=(H?_B<D!]7
M>\PN&DWO5ZRZU[##MVY7;9&:MW/=5++5$&9KU$*J=A_)F,^2D:(MI<U1AI-(
MW(U#JH8H"6O,L$<.<>C4SFZ0:?/63E!XD(7= [65"H+;:N^3@9<U6*"Z"3JV
M"6ZTF0:]N@U-KQ .+&FGWF@U/SF@:J))T>DW\9#/H-++1P:#1)9MSD*/Q;&0
M7Q9"$0RKKA_(*QB C":3H-MR*(%@%J29#11_*Z&6\MON-K;97S*9KI#[V,=<
MP"=5H,!GD<?BBKX0';U5]K^FE8F[]YQQK='.J]-W2OZ7<9&888H+MB1=)0?O
M2<96+0.V2OLDZF%PF9BF>0;UC+"<=(1HBP7 IW2<"/IH"BPJQXP83K"<:=RH
M)R]\$?P;*^I_M?T]QWQ]K6, 1K3B>PW0.IJ@D28@2T]#DG2FIF^[Y#]\(-L/
MAQR+/'L^!LQK6F:=3"S[HFU%VB9-VYD11:"K04:21D-)K/H<EWHXT0+5 *.$
MY?+Z2X*69CD'!E\S+MNT]6IL<8CK)?-S9:'@,4VE/GNH*:CQF>GIP:,/"C:W
MR@%6RR]1<<CHF,]B_,Y& FJ<N0IF5784DI36:X5$J1WK.:C-.B @>QQ4S 1#
MH5D,.>4Z=W.700P]C<-4M%_N,+J.XLT"?8[S=92@?^ H0[4YO$:\&P]>?D _
M?\K\9_K)93.C3T_KY+!AFRD46?3_-K?1DSPW= R'=A*H'0>8;,\Q6@.E=5J*
M-LC?M.+(3QGG48+#*)LW"C[]'$H'%+:3)6T82;(B0\>RU:AG>L;05@%@2-,!
M\(;A.8S-N_EPK3_K-2&P^T/:!,C^Q0;9CSB[(^#8_@4>V[_4B?6OUEW_$@JL
M?YDG4BN#>QY-GN-\G<5[U8E% TKQ#;64CK9KH(5K)*47H3-!7<MZ&B4F3PV"
M,([JF?0OL>J(MDEI&C1-QP8\,UK(I>),FR&UUE(NP4Z?&6KCQV(N#<^)#;76
M6LYE*(>Y3#M^T(146-&:T:7L+)4MNB8TI_8Z1D,[Q8*W9:N6>1FT C$S8^U
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
M^,;Y5284D,PN=21M='=(W($ME0F Z2[? 3BWR>5(#F!.J>TH,OQAI>AM47:
MJ^]O:\SF>/WS/7G\#W[T(GLN82O^.*)6_/#/LU5W[KCJO C[820&^T*<3C"T
MV,G UB!8GD5IM(D"&<\;'Y7(/DMGIK9B"&E2.7]_D., ?7;Z3JB2_%=?5^>K
M,#M EYS?Z06@='L[\V0?M=6EQQ^$MNP'1W@<>;HB@W/2@8+^O?P]C5D129X2
M&\J,L?%9B>S#M*'Q^TT3&I(>&(^*YXU Q/.F@8;GS3_/GN^87UP?LKAX_A;G
MW[]0!U?>PWI39/13WC_3 .@W\HBSE-V,OKK+^1U_7??NR*8:%$:S&8M5@$\P
M&MUNLJ7VX,)RV6J)6%-T;+M 5>L%CZV.#&AX)5C,/1RZ@I#  *+C\$=RX[[
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
MBKEC-EUO$K//WYTU]H@;,T,%(P_@@%J*4S*WA05?4FL\"63KQ@$ RG4O:P2
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
MY#C+ON-1@7 2=WHZP6]"=D1,E+K#!;Z0C'R)+3AO8LK!"+23>63NOI79530
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
MGYYPMHYSG%^(4W"=T?,W*J(XIR_Y.8HS_GX=DPI1-='/8:GFXK)">A/P[9L
M7T[I?X/3E2<B_1"D*!+3]"VE08_<U4?U;0'WC //#&*_8*[0ASNF:+D+)?:H
M&A>BYWP3Z]TA9:6%R;X\;<R)>/K1#YQAMFW%]=Z@S2&KJ@V71Y)GWIT*J:]Z
MHU=(RJGWT4+2LAZ#0U+*?<<OM+>!F;:%^%8GX]3IQ)/+$\ZY58:YH16K\=ZD
M$YJ5L]7%<;NGU@Y='5V[4)"7>RY59,5]2B6/Z[ZH6O?EBB*F*6*JEM.(-_=^
M,NY=,5D/2<U@_;OC<D-(KP.WGA'86YV$;^?5O$6P_(YZVPU)DBC+6;2,<J;$
M^S>/>A(>]<V9PJR!!+HB5B4+=W>29ET+LU=J@E4P&Z5"'4/-W^&D5KZL7VN6
M(=12R^4?DZ]TL23M,FV;5R]EXD6V-O=^Z(&*3:(]XUT>U>-G 7&VJ[79\RR\
M^PSSCS5WSG88O3GI\#[.PJ<;W,WUFV18M_U<+\.QA[_N9?\^)^#2)U[KJI5[
M6^-Z$<YZAG6MD_;6 :]EV>,Q[%4LJ_<)W%.SE2MV!<#K6[<Z>2_YYB#'KU%
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
M@ICT0+3\/B5 ]4]W&],0!HK9,O'4@]+5\()*CDBIUG+S(='NRBY[1*>K=2/
MKZ3CFZR1YLZ<:?Q2I=$,8Z?5\PR*.?QI!OWD=&# RCG.<_R-3O$&Y#*0&"U9
MRB1':\+H8_1:!Q^$6:/UB@B?B1J@%<5*8CB<EP3Q< *^6]+M"5P4K6O$5\])
MN8B(SS];_*LJR#JC^<%$3>P28%$4[:HJ6UTG&9G!DRC=+;A:4(ML*W1FP.)9
M'.<5LA05") 9S?YEE*V2YQ0U\049?Z.9GH_-@,CKY TM;-#'060DOU>B+#@W
MC?BF6$Q,JUJOHWQ+=#DA:YEE$D=92=0'5QE5^7N<)C'IZ6SQBH@Q%.0G$\O2
M[FMV!J^(*F8(Y76G!8$D?HRLF1=53(;^%:5X8^I5YB!C=K%<X#HDR%N/?T&6
M%TGYD!2_SRX)><^S,_] ))Y5]<*70%$Z'M Z2NB.Q3W*Z^T?NGI\3I.5>=@Y
M,T4.A$5&D&",R_,HI52YD Z7! ?BN$R*:+7*T:K5Z!;"@51DE,PNG$\8+[XE
M:4J<VS@*F%T<D+YG%X#Q3KE6-[.SU0N99N>-U=?\85#S"[&I&"6O$=6<;-%,
M370E=( AA5-@( P2>L1YLFF\PWE%(C%4F+ FQC?W>=X3E=)\QWD=>N.#,WTZ
MA^WG.#;3ITV*TN))E#Z5/$QV]LKUZ6(@L;NQJ$^: )G%G1X#^CB8K.[1Z)/'
MQV5WA\9$][C(K.W/Z%/'QF-G=\9$9A,DLP<E!B:BA']V1KH_YV-EWX,!,Q?;
M9YIE%U=Y4F[ICL3G*(M6]0D B<4>Z98%6FW)(BM.<5'E2(<=]3Z,-+](%BA_
MRB.:>'R6$ZBF*TT3X&,S4J'G OV[(GBN7G5)F^*8(?7-9L[;_,'Q;&&QA8!8
M/Q2>)PBV&O[.D"UF+TW,:E1N(QZW%8D;QN"VHV]+<;>E(WJSLWG[A_+63N.M
MKDALK$4LKT+LK#]LKSPLK3DLKC;,UQFV5AB&:XL#!./S!>'VMR:M[4F:K0M(
M^$-87-!(CN;1-D'OW?(B*EZN4_Q-BTP TCE(?J%!>W&3U9/O"TY)0%]<_;LB
MBQ&K3(BZF8,MO-Z0?A!9H;RB?>J2599X7<S SC[JMLE!'ZLEHMOCU\<71+PH
M6>20CE[(/!U'@.M-8L)%F.<@WBJ]9HX0QU6['7!%W&NY-5RHB/'U"27Z71#
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
MHPK6+NP(SXY):-.B4=+#FWH-C=73K 3"T%/T1A\BH9(B(B _=-='AJR/K<
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
MP9)P,<S(=#<3[A<F]+ACGSKZ@%+ZOG=]V:-.^'NFR:4DEJDSK#CSI1UD^TP
M(V2.Y]Y=0FY+V=FW*%_40]]DY1:_1&G5.(6BJ-;-;\"@W";RZ4QM!;DS'VA)
M!_',\A[Z3#.B1S&"%6*#K,/'$D)?G'TAG,7$^\J22.PA%)B9*L(C-2TCN1["
MG%0)#+*F(9O=LYR$,DWQ7K+.8#J8SK<@&K?10Y2W3?V<[!.F/]U595%&V:)Y
M/O3J#>5Q4M3R$IJ?%\0(+RD=CIAC,'N?QM.ZRW#,G,V\.2?GD^V%8;<I2"T1
M@!0D*>3X5KA_)XQ447%&%9FFO+1DMJ4BSE&&E@GX#H,NINGE!75,#G.7Y$J
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
M"U33-6).L_7^O4NUUN[V.>&#B$VE,MKVE/9,W8ARC^$^VBAC=5=&55%5)^V
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
M?-L[9&P?:/$/V@?LK?VAG3A[%^$PKNXI>CLG =$R*:_)*,EUTRY2%<<&0!J
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
MH[C2 4?#./;#5N*@X4CI$C4\;50AYFAN79LNS2RM!6ROW/3)TM_!<+[>!M]
MP9:O9C WB?AT#.]-Z_4?[OM\M_5;R YO-C4$<-:H[(_M.(\_NHA][DA,%]'W
M9FMBKMYHF=3QO2,A3,L+!\:9]7($CV'<#"UPB(N:&P='N&]G743%RW6*O^T8
M.XO+Y+4NN7!+5Y6\MR:5VW7!,;R=>ZMHWW,:[]N)@9AVL0=RES&E/&(3F^&P
M.DJ=@O8SM:<]_L#C0KX3TK4;F6-2P!MN!>.&DZ'.7*(BSI.Z1#-W*E9JM9NC
M@:W<NZG1,U /:-T\SEQ_?$+Y>KR9H=N<Z=H@S1T:HMK83UR>LG#&A@KJ?^H*
M(?V&&W4(>:7/E-%4@(>H1.V6CXK^"II#])?9_&CT5RZ<>?27V6_@CR?Q)WF]
M&4<VQ8.QAEMW?LC<;1(])VD=PW21X67%6Y#H-&7Z UE37P*?CLYMC\HOZ*U\
M^H;25_099^7+>.%BBD80&L'0.+-5+>W@6+*&Q(:FK4(,S_!A1(0;(4!Y_F\4
MY4_?L*:BCUHKZO>N]=&J-5L^A]'F7=_'M5YEL:JIO9IJ>\3ZZD11YWGIV@,-
M_9HMVK =+:[>8@+*K(MOA .BNWP<QZ7(0%G-J-5\"H+,T^5P"5HY;$&+A&V
M.@CCUTS+N'T$?K$!>KJHM/Y4.W24H;9YY<?UL?Y%E,8?=\3,T^$_JR@GG*?;
M!U14Q)W<+5MYXZSXFD75(B'.T&&:P8Z^ZR2+LCB)TGYA5^*N4UQ4T]K^K7/3
M;-UJIG+K4X9\"!GRNDHQ0W*\(BGO*R_^4XZ+XC['RV1R!6;ZI;O9TO\2HH;Q
M63/6G %J?ZZS*VC$%U3>9&3J0K>$DY%.,+^UHAM]"U$O1.P9:\8(N3]U8@Q>
M_@.^]0=\W<_M'#]Y)#,JDEC"V "&PU4+X_4+31"^1D\@"!Y:XF +<GX<\W))
MGXW:1_\<O1A!<31C!Q64;K!YT]>.';[ S^H-YAV@OS2>@OC]Z*_H65?L'*SI
M'U :$2VZ)S+9/K4@='GM<%7-(XDS:4+!=\M!&;CK-TG8])UO!U\D3Y$HXV"\
M0** P\W> H1 1F$^]882U6$U="T19OT^/@"#0Y?U:?MT<)XLX0$P.'%>:TH@
M=PS@97P3=(RLV7F9(@FWKHZ&B6* >O,%*>YD+.#C*ERD/E=@ R?*OP8+IF,\
M'++^_5E 25^CHL>[^8:2_B5:LRNK\T%V10Y8( =\@:I])O)LE:.ZM-28(,[<
MI-AN_PX5M)V]*HA/+^@N0Y]R7&W^;UQLDC*B1Z@W6<R<K(#0W3.1,FB'7EEU
MB+ J\V,/#>RP?DI2UE'@%]>$EH_U#6A<77W:2_N4&13[.YX5 =[9TOS'[BG(
M@Q,.Y[?<TGPP</&B[=:HU!YG6N#TI;9QH;9O<3K?#^M\'SKH,YSG2[IV<'[O
M.@G\+*X3*HL'%*/DE;K6+ZB\J/)\>J\1 MI*70P:@N8I,*NL8F+<@9]E@.<F
M_@H:6 U,W(]@A7R4!;YL;F'P HEY-RYN)^6Y;&4XN%=_:74NW=,*V'X>KR:7
M0J^SE^)JO]#_>R9KK/_Y_P-02P$"% ,4    " !SBWA:"3[JO)G) @#^-1X
M$@              @ $     968R,# S.3 S.%\Q,&LN:'1M4$L! A0#%
M  @ <XMX6@SZ2T1U(@  LX\  !8              ( !R<D" &5F,C P,SDP
M,SA?97@Q,"TQ,2YH=&U02P$"% ,4    " !SBWA:[3PD2Z4A  "&C0  %@
M            @ %R[ ( 968R,# S.3 S.%]E>#$P+3$R+FAT;5!+ 0(4 Q0
M   ( '.+>%I[$0:*U @  !PC   6              "  4L. P!E9C(P,#,Y
M,#,X7V5X,3 M,3DN:'1M4$L! A0#%     @ <XMX6HB;B3P>)0  LL@  !,
M             ( !4Q<# &5F,C P,SDP,SA?97@Q.2YH=&U02P$"% ,4
M" !SBWA:V0%[!#D#   9"   %0              @ &B/ , 968R,# S.3 S
M.%]E>#(S+3$N:'1M4$L! A0#%     @ <XMX6C$GYKUO"0  1#(  !4
M         ( !#D # &5F,C P,SDP,SA?97@S,2TQ+FAT;5!+ 0(4 Q0    (
M '.+>%JCK7<6?@D  -TP   5              "  ;!) P!E9C(P,#,Y,#,X
M7V5X,S$M,BYH=&U02P$"% ,4    " !SBWA:H6>/QVX%  # %@  $P
M        @ %A4P, 968R,# S.3 S.%]E>#,R+FAT;5!+ 0(4 Q0    ( '.+
M>%HS!(O 2W$! #BX 0 +              "  0!9 P!I;6%G93 Q+FIP9U!+
M 0(4 Q0    ( '.+>%JKZ%\<$!,  /S6   1              "  73*! !T
M86-T+3(P,C0Q,C,Q+GAS9%!+ 0(4 Q0    ( '.+>%JD5 %O'1@  !M@ 0 5
M              "  ;/=! !T86-T+3(P,C0Q,C,Q7V-A;"YX;6Q02P$"% ,4
M    " !SBWA:8]L-%DI!  "L800 %0              @ $#]@0 =&%C="TR
M,#(T,3(S,5]D968N>&UL4$L! A0#%     @ <XMX6H,\'5JCV0  (NT, !4
M             ( !@#<% '1A8W0M,C R-#$R,S%?;&%B+GAM;%!+ 0(4 Q0
M   ( '.+>%IJ"@^=#W   %S=!P 5              "  581!@!T86-T+3(P
D,C0Q,C,Q7W!R92YX;6Q02P4&      \ #P#; P  F($&

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>100
<FILENAME>ef20039038_10k_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/2024"
  xmlns:cyd="http://xbrl.sec.gov/cyd/2024"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2024"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2024"
  xmlns:tact="http://transact-tech.com/20241231"
  xmlns:us-gaap="http://fasb.org/us-gaap/2024"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="tact-20241231.xsd" xlink:type="simple"/>
    <context id="c20240101to20241231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="c20250314">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2025-03-14</instant>
        </period>
    </context>
    <context id="c20241231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20230101to20231231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20231231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockCommonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20231231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20241001to20241231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2024-10-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_ToolsDiesAndMoldsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ToolsDiesAndMoldsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20260101Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20270101Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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>2024-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:LightWonderGamingIncMember</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-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:LightWonderGamingIncMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</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-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:LightWonderGamingIncMember</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="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:LightWonderGamingIncMember</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>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FixedAssetsExcludingConstructionInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FixedAssetsExcludingConstructionInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tact:TransactMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:OperatingSegmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tact:TransactMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:MaterialReconcilingItemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">us-gaap:MaterialReconcilingItemsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_TitleOfIndividualAxis_ChiefExecutiveOfficerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-13</instant>
        </period>
    </context>
    <context id="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_FederalFundsEffectiveSwapRateMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:FederalFundsEffectiveSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_PrimeRateMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20231231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20210721_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-07-21</instant>
        </period>
    </context>
    <context id="c20241120_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-11-20</instant>
        </period>
    </context>
    <context id="c20241119_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-11-19</instant>
        </period>
    </context>
    <context id="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20241231_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20241231_IncomeTaxAuthorityAxis_DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_TaxCreditCarryforwardAxis_ResearchMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_TaxCreditCarryforwardAxis_ResearchMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceDeferredTaxAssetUnitedStatesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">tact:ValuationAllowanceDeferredTaxAssetUnitedStatesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_PerformanceSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_PerformanceSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_RestrictedStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_RestrictedStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20050101to20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2005-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:PacificRimMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:PacificRimMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20231001to20231231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20240331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c20230701to20230930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="c20240401to20240630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="c20240701to20240930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="c20230401to20230630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c20230101to20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c20230101to20231231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tact:TheOneGroupHospitalityIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c20240101to20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tact:TheOneGroupHospitalityIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tact:TheOneGroupHospitalityIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c20231231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">tact:TheOneGroupHospitalityIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <unit id="U001">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="U002">
        <measure>shares</measure>
    </unit>
    <unit id="U003">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="U004">
        <measure>tact:Segment</measure>
    </unit>
    <unit id="U005">
        <measure>tact:Solution</measure>
    </unit>
    <unit id="U006">
        <measure>pure</measure>
    </unit>
    <unit id="U007">
        <measure>tact:Plan</measure>
    </unit>
    <dei:AmendmentFlag
      contextRef="c20240101to20241231"
      id="Fact_8ff688de41d241ceaa9b94cb45cecc76">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate
      contextRef="c20240101to20241231"
      id="Fact_7003950223e24ea79116917bbc717688">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="c20240101to20241231"
      id="Fact_cf9e81cc4ac941e591f5399431ce9358">2024</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="c20240101to20241231"
      id="Fact_5c64da1ff0ce432eab481f1e06884de5">FY</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey
      contextRef="c20240101to20241231"
      id="Fact_9272e67ef4e5437d9ab752e6636df90c">0001017303</dei:EntityCentralIndexKey>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20270101Member"
      id="Fact_e37ea88e93bd42529bfb23dbe89fa89f"
      unitRef="U001"
      xsi:nil="true"/>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20270101Member"
      id="Fact_f50c8aea3ef443c8a2609b35c6a05cf4">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20260101Member"
      id="Fact_070b19bc2e87417485287551ea3163d4">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <dei:AuditorFirmId
      contextRef="c20240101to20241231"
      id="Fact_10f4a0dd8bbe41ea9f478334d704bcf8">688</dei:AuditorFirmId>
    <us-gaap:CommitmentsAndContingencies
      contextRef="c20241231"
      id="Fact_b2b91892050d45bfbdfe14f96b9ad30d"
      unitRef="U001"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="c20231231"
      id="Fact_c98ce75021e247d9a6a16f2ba55381cc"
      unitRef="U001"
      xsi:nil="true"/>
    <dei:DocumentType
      contextRef="c20240101to20241231"
      id="Fact_ad50b7e2ef8340a4ad958b070437cc76">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="c20240101to20241231"
      id="Fact_c196ef1afe044bb590c42eabdcc0af09">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="c20240101to20241231"
      id="Fact_3cc1bb0bdaef4641a6cbde1bd62c1470">2024-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="c20240101to20241231"
      id="Fact_820511bda7a04120b2b6511a5eb7c233">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="c20240101to20241231"
      id="Fact_df74f8f952ea4441ad8a7cf5b0d95746">0-21121</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="c20240101to20241231"
      id="Fact_4ace6eb2a1094deb9942631e9a0a072f">TRANSACT TECHNOLOGIES INC</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="c20240101to20241231"
      id="Fact_6c186e9ec16841838b8de7a9708448bb">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="c20240101to20241231"
      id="Fact_6cd3130d7d8048d19748fe3a46face1c">06-1456680</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="c20240101to20241231"
      id="Fact_0651ea05f328482b9b0c8fa7c42cba10">One Hamden Center</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="c20240101to20241231"
      id="Fact_8294c91bb5f245dab4559bb314acdfed">2319 Whitney Avenue, Suite 3B</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="c20240101to20241231"
      id="Fact_686df33220f448afbd92a4764a54ce43">Hamden</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="c20240101to20241231"
      id="Fact_88b3711caee34c02869699692ad8238f">CT</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="c20240101to20241231"
      id="Fact_8a0a94d169b342309fd8cbc3f1cacf23">06518</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="c20240101to20241231"
      id="Fact_ad6dba071d914d569072932702da6016">203</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="c20240101to20241231"
      id="Fact_f7d53f19266641379c58eaad95130c2f">859-6800</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="c20240101to20241231"
      id="Fact_c9cfb748665d45a4be9cdf101eb82934">Common stock, par value $0.01 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="c20240101to20241231"
      id="Fact_a9f3d0f875334e4d8829735307dd1e1a">TACT</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="c20240101to20241231"
      id="Fact_222aa33516e942b1b85ef0ea0d105a94">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="c20240101to20241231"
      id="Fact_2032c3d762e04197a7b32afcb8f2f137">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="c20240101to20241231"
      id="Fact_51c01c6ceb1541329705cdfb0221528d">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="c20240101to20241231"
      id="Fact_232c8f4c5a28488d844f0ae88b9d110c">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="c20240101to20241231"
      id="Fact_f7a8fcee95ad436c9d820a9f176929fe">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="c20240101to20241231"
      id="Fact_8fb9951b466949ffa4e7537008e50454">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="c20240101to20241231"
      id="Fact_9aca122d68174cc6bf944250e13c0e07">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="c20240101to20241231"
      id="Fact_20b156268cda47cd8e747c77ea3e256b">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag
      contextRef="c20240101to20241231"
      id="Fact_fb71296d75164244958417756965440c">false</dei:IcfrAuditorAttestationFlag>
    <dei:DocumentFinStmtErrorCorrectionFlag
      contextRef="c20240101to20241231"
      id="Fact_bf8a6947029b432392153892841fb143">false</dei:DocumentFinStmtErrorCorrectionFlag>
    <dei:EntityShellCompany
      contextRef="c20240101to20241231"
      id="Fact_92f99f4a7b764f6898d58c2f199e5665">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="c20240630"
      decimals="0"
      id="Fact_a4797fc92cc14db3b6d7c29be0d6d7db"
      unitRef="U001">33000000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="c20250314"
      decimals="INF"
      id="Fact_05577fe83d8f4d73ad0639034dc50841"
      unitRef="U002">10080717</dei:EntityCommonStockSharesOutstanding>
    <cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock
      contextRef="c20240101to20241231"
      id="Text_04a084bfc8f74de5a7f4339c75c5c577">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Risk Management and Strategy&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s Board of Directors recognizes the critical importance of maintaining the trust and confidence of our customers, clients, business
        partners and employees. The Board of Directors is actively involved in oversight of the Company&#x2019;s risk management program, and cybersecurity represents an important component of the Company&#x2019;s overall approach to enterprise risk management (&#x201c;ERM&#x201d;).
        &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s cybersecurity policies, standards, processes and practices are fully integrated into the Company&#x2019;s ERM program and are based on recognized frameworks established by the National Institute of Standards and Technology, the International Organization for Standardization and other applicable industry standards. In general, the
        Company seeks to address cybersecurity risks through a comprehensive, cross-functional approach that is focused on preserving the confidentiality, security and availability of the information that the Company collects and stores by identifying,
        preventing and mitigating cybersecurity threats and effectively responding to cybersecurity incidents when they occur.&lt;/span&gt; As one of the critical elements of the Company&#x2019;s overall ERM approach, the Company&#x2019;s cybersecurity
        program is focused on the following key areas:&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&#x2022;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-weight: bold;"&gt;Governance:&lt;/span&gt; As discussed in more detail under the heading &#x201c;Governance,&#x201d; the Board of Directors&#x2019; oversight of cybersecurity risk management is supported by the Audit Committee of the Board of
                  Directors (the &#x201c;Audit Committee&#x201d;), which regularly interacts with the Company&#x2019;s ERM function, the Company&#x2019;s Vice President of Information Technology, other members of management and relevant management committees and councils, including
                  management&#x2019;s Sarbanes-Oxley &amp;amp; Cybersecurity Steering Committee.&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&#x2022;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-weight: bold;"&gt;Collaborative Approach:&lt;/span&gt; The Company has implemented a comprehensive, cross-functional approach to identifying, preventing and mitigating cybersecurity threats and incidents, while also
                  implementing controls and procedures that are designed to provide for the prompt and appropriate internal reporting of certain cybersecurity incidents, either in the form of a single unauthorized occurrence or a series of unauthorized
                  occurrences, so that decisions regarding the public disclosure and reporting of such incidents can be made by management in a timely manner.&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&#x2022;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-weight: bold;"&gt;Technical Safeguards:&lt;/span&gt; The Company deploys technical safeguards that are designed to protect the Company&#x2019;s information systems from cybersecurity threats, including firewalls, intrusion
                  prevention and detection systems, anti-malware functionality and access controls, which are evaluated and improved through vulnerability assessments and cybersecurity threat intelligence.&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&#x2022;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-weight: bold;"&gt;Incidence Response and Recovery Planning:&lt;/span&gt; The Company has established and maintains comprehensive incident response and recovery plans intended to fully and timely address the Company&#x2019;s
                  response to a cybersecurity incident, and such plans are tested and evaluated on a regular basis.&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&#x2022;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-weight: bold;"&gt;Third-Party Risk Management:&lt;/span&gt; The Company maintains a comprehensive, risk-based
                  approach to identifying and overseeing cybersecurity risks presented by third parties, including vendors, service providers and other external users of the Company&#x2019;s systems, as well as the systems of third parties that could adversely
                  impact our business in the event of a cybersecurity incident affecting those third-party systems.&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
            &lt;/td&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&#x2022;&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;
              &lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-weight: bold;"&gt;Education and Awareness:&lt;/span&gt; The Company provides regular, mandatory training for personnel regarding cybersecurity threats as a means to equip the Company&#x2019;s personnel with effective tools to
                  proactively address cybersecurity threats and prevent incursions and to communicate the Company&#x2019;s evolving information security policies, standards, processes and practices.&#160; Our awareness program includes assessment of our personnel&#x2019;s
                  preparedness through regular phishing e-mail alerts, highlighted banners that warn about external senders, and tests administered to help the Company&#x2019;s personnel interrogate, navigate around, and avoid clicking suspicious and unfamiliar
                  links from unknown senders.&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company engages in the periodic assessment and testing of the Company&#x2019;s policies, standards, processes and practices that are designed to
        address cybersecurity threats and incidents. These efforts include a wide range of activities, including audits, assessments, tabletop exercises, threat modeling, vulnerability testing and other exercises focused on evaluating the effectiveness of
        our cybersecurity measures and planning. The Company engages third parties to perform assessments on our cybersecurity measures,
        including information security maturity assessments, audits and independent reviews of our information security control environment and operating effectiveness. The results of such assessments, audits and reviews are periodically reported to the
        Audit Committee and the Board of Directors, and the Company adjusts its cybersecurity policies, standards, processes and practices as appropriate based on the information provided by these assessments, audits and reviews.&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cybersecurity threats, including as a result of previous cybersecurity incidents, have not materially affected, and are not reasonably likely to materially affect, the Company, including its business strategy, results of operations or financial condition.&lt;br/&gt;
      &lt;/div&gt;
</cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock>
    <cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock
      contextRef="c20240101to20241231"
      id="Text_49df8c1cc6924484a31572b21a069b40">&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company&#x2019;s cybersecurity policies, standards, processes and practices are fully integrated into the Company&#x2019;s ERM program and are based on recognized frameworks established by the National Institute of Standards and Technology, the International Organization for Standardization and other applicable industry standards. In general, the
        Company seeks to address cybersecurity risks through a comprehensive, cross-functional approach that is focused on preserving the confidentiality, security and availability of the information that the Company collects and stores by identifying,
        preventing and mitigating cybersecurity threats and effectively responding to cybersecurity incidents when they occur.&lt;/span&gt;</cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock>
    <cyd:CybersecurityRiskManagementProcessesIntegratedFlag
      contextRef="c20240101to20241231"
      id="Fact_0efd458de08d491fa39b43fcdf881560">true</cyd:CybersecurityRiskManagementProcessesIntegratedFlag>
    <cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag
      contextRef="c20240101to20241231"
      id="Fact_00d0c44ba62d4671aed84d87d58437d5">true</cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag>
    <cyd:CybersecurityRiskManagementThirdPartyEngagedFlag
      contextRef="c20240101to20241231"
      id="Fact_9fd63d19bcd74755af706e8acd7f4878">true</cyd:CybersecurityRiskManagementThirdPartyEngagedFlag>
    <cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock
      contextRef="c20240101to20241231"
      id="Text_f32ca4ae8d85440ea7f5fd5ac81994f3">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-weight: bold; color: rgb(0, 0, 0); font-variant: normal; text-transform: none;"&gt;Governance&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-weight: bold; color: rgb(0, 0, 0); font-variant: normal; text-transform: none;"&gt; &lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Board of Directors, in coordination with the Audit Committee, oversees the Company&#x2019;s ERM process, including the management of risks arising
        from cybersecurity threats.&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Board of Directors and the Audit Committee each receive presentations and
        reports on cybersecurity risks, which address a wide range of topics including recent developments, evolving standards, vulnerability assessments, third-party and independent reviews, the threat environment, technological trends and information
        security considerations arising with respect to the Company&#x2019;s peers and third parties. The Board of Directors and the Audit Committee also receive prompt and timely information regarding any cybersecurity incident that meets established reporting
        thresholds or that management otherwise deems to be significant, as well as ongoing updates regarding any such incident until it has been addressed.&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;On an annual basis, the Board of Directors and Audit Committee discuss the Company&#x2019;s approach to cybersecurity risk management with the members of management&#x2019;s Sarbanes-Oxley &amp;amp; Cybersecurity Steering Committee, which includes the Company&#x2019;s President and Chief Financial Officer (&#x201c;CFO&#x201d;) and Vice President of Information Technology.&lt;/span&gt;&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Sarbanes-Oxley &amp;amp; Cybersecurity Steering Committee&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;, in coordination with the Company&#x2019;s outside legal counsel, works collaboratively across the Company and with various consultants to implement a program designed to protect the Company&#x2019;s information systems from
        cybersecurity threats and to promptly respond to any cybersecurity incidents in accordance with the Company&#x2019;s incident response and recovery plans.&lt;/span&gt;&lt;/span&gt;
        &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Vice President of Information Technology has served in various roles in information technology and information security for over 25 years and holds undergraduate and graduate degrees in
        computer science. As described in more detail above under the heading &#x201c;Information about our Executive Officers,&#x201d; the Company&#x2019;s Chief Executive Officer and the President and CFO each hold undergraduate and graduate degrees in their respective
        fields, and each has over 30 years of experience managing risks at the Company and at similar companies, including risks arising from cybersecurity threats.&lt;/span&gt;&lt;/div&gt;
</cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock>
    <cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock
      contextRef="c20240101to20241231"
      id="Text_4b940f4abe974312855cbd4080360771">&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Board of Directors, in coordination with the Audit Committee, oversees the Company&#x2019;s ERM process, including the management of risks arising
        from cybersecurity threats.&lt;/span&gt;</cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock>
    <cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock
      contextRef="c20240101to20241231"
      id="Text_c5c6e797420f43a8a45e0fd1a4737292">&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Board of Directors and the Audit Committee each receive presentations and
        reports on cybersecurity risks, which address a wide range of topics including recent developments, evolving standards, vulnerability assessments, third-party and independent reviews, the threat environment, technological trends and information
        security considerations arising with respect to the Company&#x2019;s peers and third parties. The Board of Directors and the Audit Committee also receive prompt and timely information regarding any cybersecurity incident that meets established reporting
        thresholds or that management otherwise deems to be significant, as well as ongoing updates regarding any such incident until it has been addressed.&lt;/span&gt;</cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock
      contextRef="c20240101to20241231"
      id="Text_b438095065e74ecbb2893bd298f32c40">&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;On an annual basis, the Board of Directors and Audit Committee discuss the Company&#x2019;s approach to cybersecurity risk management with the members of management&#x2019;s Sarbanes-Oxley &amp;amp; Cybersecurity Steering Committee, which includes the Company&#x2019;s President and Chief Financial Officer (&#x201c;CFO&#x201d;) and Vice President of Information Technology.&lt;/span&gt;</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag
      contextRef="c20240101to20241231"
      id="Fact_439755419f024ec8be9909e6d10cb499">true</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag>
    <cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock
      contextRef="c20240101to20241231"
      id="Text_fbc1a86e6055420b879ecba93255f772">&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Sarbanes-Oxley &amp;amp; Cybersecurity Steering Committee&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;, in coordination with the Company&#x2019;s outside legal counsel, works collaboratively across the Company and with various consultants to implement a program designed to protect the Company&#x2019;s information systems from
        cybersecurity threats and to promptly respond to any cybersecurity incidents in accordance with the Company&#x2019;s incident response and recovery plans.&lt;/span&gt;&lt;/span&gt;</cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock>
    <cyd:CybersecurityRiskRoleOfManagementTextBlock
      contextRef="c20240101to20241231"
      id="Text_d1b1f6ae2ded464ba4eed339e0fdf8fc">&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Sarbanes-Oxley &amp;amp; Cybersecurity Steering Committee&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;, in coordination with the Company&#x2019;s outside legal counsel, works collaboratively across the Company and with various consultants to implement a program designed to protect the Company&#x2019;s information systems from
        cybersecurity threats and to promptly respond to any cybersecurity incidents in accordance with the Company&#x2019;s incident response and recovery plans.&lt;/span&gt;</cyd:CybersecurityRiskRoleOfManagementTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag
      contextRef="c20240101to20241231"
      id="Fact_4d8ffe0b1d1447ca83af290ce08b8f0b">true</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag>
    <cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock
      contextRef="c20240101to20241231"
      id="Text_fa2e75688b3a4b9898b107190c41d7dd">&lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Vice President of Information Technology has served in various roles in information technology and information security for over 25 years and holds undergraduate and graduate degrees in
        computer science. As described in more detail above under the heading &#x201c;Information about our Executive Officers,&#x201d; the Company&#x2019;s Chief Executive Officer and the President and CFO each hold undergraduate and graduate degrees in their respective
        fields, and each has over 30 years of experience managing risks at the Company and at similar companies, including risks arising from cybersecurity threats.&lt;/span&gt;</cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock>
    <cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock
      contextRef="c20240101to20241231"
      id="Text_1a2a38c81c8c4521b930e015efc27dba">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Cybersecurity threats, including as a result of previous cybersecurity incidents, have not materially affected, and are not reasonably likely to materially affect, the Company, including its business strategy, results of operations or financial condition.&lt;br/&gt;
      &lt;/div&gt;
</cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock>
    <cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag
      contextRef="c20240101to20241231"
      id="Fact_802cc63b207846c785c19b01dfb3aae5">false</cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag>
    <ecd:NonRule10b51ArrAdoptedFlag
      contextRef="c20241001to20241231"
      id="Fact_b49e77c167b94dd889cba3a89e35af8c">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrAdoptedFlag
      contextRef="c20241001to20241231"
      id="Fact_6c7bbce02c224622a7d65b7cf6f18070">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrTrmntdFlag
      contextRef="c20241001to20241231"
      id="Fact_b28fbeb0e39e4614a1b679dd24f1fd5e">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrTrmntdFlag
      contextRef="c20241001to20241231"
      id="Fact_58f750d653a046be9ba073c2d6f540df">false</ecd:NonRule10b51ArrTrmntdFlag>
    <dei:AuditorName
      contextRef="c20240101to20241231"
      id="Fact_9380c26b9d68493ca7a31daae512a2f5">Marcum LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="c20240101to20241231"
      id="Fact_3aa4cd2594dc41eca363e893ed79e988">Hartford, Connecticut</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20241231"
      decimals="-3"
      id="Fact_dc38f793849b49d398505fb6cf842d88"
      unitRef="U001">14394000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20231231"
      decimals="-3"
      id="Fact_583b533e6d5e4782b75189719d3e9120"
      unitRef="U001">12321000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_5cfb9d009124444ca049f43740764ff5"
      unitRef="U001">474000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_69cd8a5607b4489bbd6c58bcdcbfc67a"
      unitRef="U001">768000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_da7f8c026cb14a72b76f182cf03d53b9"
      unitRef="U001">6507000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_5be95321430a414093f09cb81397971c"
      unitRef="U001">9824000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_6f37ef3f7db84b4ea113c4274e48ce08"
      unitRef="U001">16161000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_890f3619f73b4ab6957218d084b1b186"
      unitRef="U001">17759000</us-gaap:InventoryNet>
    <us-gaap:PrepaidTaxes
      contextRef="c20241231"
      decimals="-3"
      id="Fact_ec019ccb646649b88e5e6385a1ce6729"
      unitRef="U001">401000</us-gaap:PrepaidTaxes>
    <us-gaap:PrepaidTaxes
      contextRef="c20231231"
      decimals="-3"
      id="Fact_cc488212d8274693b08b17c5ec692e84"
      unitRef="U001">322000</us-gaap:PrepaidTaxes>
    <us-gaap:OtherAssetsCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_c621a9ecf8c044ac9d4532230a8cc2a9"
      unitRef="U001">899000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_0ed2549279ef48ba81d668f705443126"
      unitRef="U001">773000</us-gaap:OtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_47c80d47528f4025bb455a337e876702"
      unitRef="U001">38362000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_b32ed7f0d1984329b2f02aee0d1a40c6"
      unitRef="U001">40999000</us-gaap:AssetsCurrent>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20241231"
      decimals="-3"
      id="Fact_6a1e0f8d0c434cd081de6bb4d8f963d2"
      unitRef="U001">19468000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20231231"
      decimals="-3"
      id="Fact_362acf2f88ba4019aa275804921f7581"
      unitRef="U001">18646000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_349ce91ac14746d29a84efcb2acc16f7"
      unitRef="U001">1818000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_5020fa4f4289473f81eca36d73e98e11"
      unitRef="U001">2421000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="c20241231"
      decimals="-3"
      id="Fact_7039a3bd928145c186887187892cd5b9"
      unitRef="U001">1141000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="c20231231"
      decimals="-3"
      id="Fact_898b7a32715343cbaa3fff72cb278b40"
      unitRef="U001">1602000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="c20241231"
      decimals="-3"
      id="Fact_beedf814ca784025aa80bd3a309a4216"
      unitRef="U001">2621000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="c20231231"
      decimals="-3"
      id="Fact_0459ccce31294f4d93e2f3c9b01ff012"
      unitRef="U001">2621000</us-gaap:Goodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_ac81821a901646049ede044faf82a3bf"
      unitRef="U001">0</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_74eae8de516b45d3bd6212215677a06d"
      unitRef="U001">6304000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20241231"
      decimals="-3"
      id="Fact_15c23ab9a9074314a0e10d9e3c6557eb"
      unitRef="U001">1606000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20231231"
      decimals="-3"
      id="Fact_030387d884194fef86b26bd0cbbed1ba"
      unitRef="U001">1518000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="c20241231"
      decimals="-3"
      id="Fact_688b7b571d5849cb987c3b48ff402985"
      unitRef="U001">0</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="c20231231"
      decimals="-3"
      id="Fact_832f2ad90b014288b5756ec27867b837"
      unitRef="U001">88000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_134028c384a14bf496401b2925751878"
      unitRef="U001">92000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_eee28124a15d4468ba007e98caefc7fb"
      unitRef="U001">163000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:AssetsNoncurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_f98528221e334acbb8e30b0227adee44"
      unitRef="U001">5672000</us-gaap:AssetsNoncurrent>
    <us-gaap:AssetsNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_52a881492ad1420f8305452b8aad9a57"
      unitRef="U001">13199000</us-gaap:AssetsNoncurrent>
    <us-gaap:Assets
      contextRef="c20241231"
      decimals="-3"
      id="Fact_5b0aed3ca7b24b48bda59bc9f77ebff8"
      unitRef="U001">44034000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="c20231231"
      decimals="-3"
      id="Fact_941ed27c59ec4204915f05b3593ca333"
      unitRef="U001">54198000</us-gaap:Assets>
    <us-gaap:LinesOfCreditCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_b52ccdf38ded4423a09e0bbd24cedc89"
      unitRef="U001">3000000</us-gaap:LinesOfCreditCurrent>
    <us-gaap:LinesOfCreditCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_4d69ea46c3fb46fe93a0caa7d1d8220c"
      unitRef="U001">2250000</us-gaap:LinesOfCreditCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_9431ea352afe4a57b623461b9c954df2"
      unitRef="U001">4569000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_3ce1a3fc8f6d47cf9d4caf4e4c12bb63"
      unitRef="U001">4431000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_c6bc5b43bf1440c8b24889bfa600510d"
      unitRef="U001">3253000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7567297804fc4ccd91278f0f8ae5f8fa"
      unitRef="U001">4947000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_7bf1f8875ea9401f9a540a9fb804bde5"
      unitRef="U001">955000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7b92017c9d514168a99a6fba3cfd5360"
      unitRef="U001">929000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_82ae79e1294f41d198e9ecd7f629b7cd"
      unitRef="U001">1107000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_138cf84547f242aab1e1ce89c2b02615"
      unitRef="U001">1079000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_676974ef9d4148bfbc9f533bb6694ce1"
      unitRef="U001">12884000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_4e1872f1b4304d7baf9aef758b0d213c"
      unitRef="U001">13636000</us-gaap:LiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e1070e5401514475b77b36636d1d9f36"
      unitRef="U001">246000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_ac778866a23b42a2820a3b4c6ffb0492"
      unitRef="U001">209000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_528f1116b73f41089a4fbb63eade9f06"
      unitRef="U001">231000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_13ee33ff73f4499988f10eb686e63255"
      unitRef="U001">720000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_045babe7d33c4ec293dbaf327c8358ab"
      unitRef="U001">40000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_9e1c11405ee4484885d92a297297e43c"
      unitRef="U001">219000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_31320663447a42d8867cba3f5eee87a3"
      unitRef="U001">517000</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_6ae12eae776c4be7b38a720951b43143"
      unitRef="U001">1148000</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="c20241231"
      decimals="-3"
      id="Fact_59afe1063d52406abe1778356a4a9442"
      unitRef="U001">13401000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7730048b802f40cab53a203b2d8db1e0"
      unitRef="U001">14784000</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c20231231"
      decimals="2"
      id="Fact_f86ce06d010f435abf9124342bf6db5b"
      unitRef="U003">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c20241231"
      decimals="2"
      id="Fact_dddc05d2e8aa4a728a7b7a4c80efafd9"
      unitRef="U003">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c20231231"
      decimals="0"
      id="Fact_a42d039de3dc41afbd55d3c97cbf21ff"
      unitRef="U002">4800000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c20241231"
      decimals="0"
      id="Fact_1edbc5a0346c43cebf620bf74588452e"
      unitRef="U002">4800000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="c20231231"
      decimals="INF"
      id="Fact_fe65d4b75ab64a77896a4d19a0e05e8c"
      unitRef="U002">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="c20241231"
      decimals="INF"
      id="Fact_fbe770e4c6b1429d9d607365a60810a5"
      unitRef="U002">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="c20241231"
      decimals="INF"
      id="Fact_c124fbc38d5844fd98797fb99fd0b53f"
      unitRef="U002">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="c20231231"
      decimals="INF"
      id="Fact_0af5a4ebe8144710a9e3aed1bb72e2db"
      unitRef="U002">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="c20241231"
      decimals="-3"
      id="Fact_40091bc7741d4c30bc94235bab08a537"
      unitRef="U001">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="c20231231"
      decimals="-3"
      id="Fact_aa1706a466b94e0daed752056a8fea6e"
      unitRef="U001">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="2"
      id="Fact_9c235aa12bce46f29f8d1271525a7276"
      unitRef="U003">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="2"
      id="Fact_809f19b31ab0419d98a33913bea52408"
      unitRef="U003">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="0"
      id="Fact_c768fa0b756f459a883e928ff4ea1141"
      unitRef="U002">200000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="0"
      id="Fact_22b81b79721c4d438b9e3e09277e136a"
      unitRef="U002">200000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="INF"
      id="Fact_aa91782b29454f35a0aae58c79280a1d"
      unitRef="U002">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="INF"
      id="Fact_7ed6d242b5fc4796b0e95135652705cd"
      unitRef="U002">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="INF"
      id="Fact_7b9ccf585c5d4ecb9542ecaddca613a2"
      unitRef="U002">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="INF"
      id="Fact_78bab9f77b8c4e0b9062d96b430517e1"
      unitRef="U002">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValue
      contextRef="c20241231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="-3"
      id="Fact_b3caad4f6f4f4b829ae5cce3127cc311"
      unitRef="U001">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="c20231231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="-3"
      id="Fact_88c0df72a8c5449f92f0b188457537bc"
      unitRef="U001">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20231231"
      decimals="2"
      id="Fact_2a1c6cbaf196409f9f26d3ce2a2704c2"
      unitRef="U003">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20241231"
      decimals="2"
      id="Fact_081862335a224749b7c0291b12e7031d"
      unitRef="U003">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20231231"
      decimals="0"
      id="Fact_a1a48a6b8a364f589d7d2c1fb79041b2"
      unitRef="U002">20000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20241231"
      decimals="0"
      id="Fact_8de65fef4ec2462caa29b56168dcf35d"
      unitRef="U002">20000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20241231"
      decimals="0"
      id="Fact_a2d9c23e39ae45188d662d26184b9bc1"
      unitRef="U002">14068049</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20231231"
      decimals="0"
      id="Fact_d9360c2a97724a739630f1f31160adbd"
      unitRef="U002">14003653</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20241231"
      decimals="0"
      id="Fact_9aac3f6c46504bcd9b389800fc13bc08"
      unitRef="U002">10023207</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20231231"
      decimals="0"
      id="Fact_021edece6d584b4887d3dbd01a5c2b4a"
      unitRef="U002">9958811</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e9293e9da13042df8a824413584b1695"
      unitRef="U001">141000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="c20231231"
      decimals="-3"
      id="Fact_d79a01ab64174b61b5acd6cf7fb666c9"
      unitRef="U001">140000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="c20241231"
      decimals="-3"
      id="Fact_61f71ec4c79b46d48bcade1398dab821"
      unitRef="U001">58141000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="c20231231"
      decimals="-3"
      id="Fact_0712927a75454d7bb8d671f668585304"
      unitRef="U001">57055000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20241231"
      decimals="-3"
      id="Fact_c8ad956cdfdc4b20b25ca427ee45edd4"
      unitRef="U001">4515000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7537049d901344d7a5f92a48207479b0"
      unitRef="U001">14378000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="c20241231"
      decimals="-3"
      id="Fact_d1a2e72d73474221a858656645d50549"
      unitRef="U001">-54000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="c20231231"
      decimals="-3"
      id="Fact_fdeae2fbd31547db958d3723c52a4d26"
      unitRef="U001">-49000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:TreasuryStockCommonShares
      contextRef="c20241231"
      decimals="0"
      id="Fact_778bf5fafae74352840cfde6b015f35e"
      unitRef="U002">4044842</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockCommonShares
      contextRef="c20231231"
      decimals="0"
      id="Fact_41a2171c81b5487eb8580795f21f0d7a"
      unitRef="U002">4044842</us-gaap:TreasuryStockCommonShares>
    <us-gaap:TreasuryStockValue
      contextRef="c20241231"
      decimals="-3"
      id="Fact_813f496465c9408dbb2883294a468782"
      unitRef="U001">32110000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="c20231231"
      decimals="-3"
      id="Fact_279cc2e009164842adfe227fc10e3d56"
      unitRef="U001">32110000</us-gaap:TreasuryStockValue>
    <us-gaap:StockholdersEquity
      contextRef="c20241231"
      decimals="-3"
      id="Fact_7e41591c679f40daa3ccc023a5793d5d"
      unitRef="U001">30633000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231"
      decimals="-3"
      id="Fact_514e8c2b684846ab8a2c665dc4af7dad"
      unitRef="U001">39414000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20241231"
      decimals="-3"
      id="Fact_083b3e7b48794daab53e4757a40932a6"
      unitRef="U001">44034000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7bedaedb6b3c4d6696fcb6a07a8ecdb8"
      unitRef="U001">54198000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_b914f3ce647a4c0f8346609e0ad2a253"
      unitRef="U001">43384000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_dbb960f735184e13a2cfa3af5f088b4b"
      unitRef="U001">72631000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfRevenue
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_69c23b3db0cb45a891d7afa2793e21b7"
      unitRef="U001">21902000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_1b3a75d70980491c9d0ee70620d0f0e1"
      unitRef="U001">34231000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_b826665da3574e42a635bb60c78085c1"
      unitRef="U001">21482000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_dfd7f60d840649d1ad3692decf07a86d"
      unitRef="U001">38400000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_5d4de807d9d14ed4823cf9fe616cb038"
      unitRef="U001">6977000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_493beea135864d9d9816fdf88dfc5b82"
      unitRef="U001">9442000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_dfaf9e435c454cba8f0521e7328c632f"
      unitRef="U001">8195000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_0d7aac92a23a494196a6902292beac50"
      unitRef="U001">9934000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_92510088bbb340ddb1ca5204b49ca33d"
      unitRef="U001">9936000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_aaa6fc5e4fba4b95beffea4a27af82b3"
      unitRef="U001">13318000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_ff795e8c87b64f879038a7ac72017883"
      unitRef="U001">25108000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_abab51d8dbdc4049be43bff38a0c6ef3"
      unitRef="U001">32694000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_609fbabd315047d19fb4324d6a48a785"
      unitRef="U001">-3626000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_4611ceafb8a6446fb71cf0d36f03f4ff"
      unitRef="U001">5706000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestExpenseNonoperating
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_e00094b182bc41fe9088342e0bbc2902"
      unitRef="U001">322000</us-gaap:InterestExpenseNonoperating>
    <us-gaap:InterestExpenseNonoperating
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_66761a3d3d53417d82dd2627ad217b4c"
      unitRef="U001">310000</us-gaap:InterestExpenseNonoperating>
    <us-gaap:InterestIncomeDomesticDeposits
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_664ed0a3c1bb47e8acd42efda92d5c05"
      unitRef="U001">469000</us-gaap:InterestIncomeDomesticDeposits>
    <us-gaap:InterestIncomeDomesticDeposits
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_42bcf35875824ee9a3138dbd544a6aa5"
      unitRef="U001">55000</us-gaap:InterestIncomeDomesticDeposits>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_eb572a242efc4a34b22aff8e7b2f6812"
      unitRef="U001">-89000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_208c1a5da84049f1869faedd1c09d67c"
      unitRef="U001">452000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_d52e5e5495cc47039106578f9074211c"
      unitRef="U001">58000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_e2df044afd134d4c9c869300bd1e9948"
      unitRef="U001">197000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_db9675ebee0e4a4eabd956569d5b7201"
      unitRef="U001">-3568000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_3e478f21238d43fd8bec39fe95053e6d"
      unitRef="U001">5903000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_604b3def360d41dd83a6dd1d3441005d"
      unitRef="U001">6295000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_442da0f297014d3796640168da238b29"
      unitRef="U001">1155000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_e673ca574d7745df842c6d89b8b4f42e"
      unitRef="U001">-9863000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_3ed8be3210bb4e70a0fd7fa3a937cc95"
      unitRef="U001">4748000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20240101to20241231"
      decimals="2"
      id="Fact_4eb214617b6949229dd34d649cbc2fe8"
      unitRef="U003">-0.99</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20230101to20231231"
      decimals="2"
      id="Fact_e80484973380404fb38e2540cf277b45"
      unitRef="U003">0.48</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20240101to20241231"
      decimals="2"
      id="Fact_ecde569f4bf3484782479ab8e6892a32"
      unitRef="U003">-0.99</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20230101to20231231"
      decimals="2"
      id="Fact_892cb70786714b2c853dc29f7eab6d8a"
      unitRef="U003">0.47</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_d0286938e38c44a49cf415096d8b7fe1"
      unitRef="U002">9997000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_00d00d609508466eb9605ec64b913a63"
      unitRef="U002">9951000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_889cbdb12eea49648e867573c7436a6e"
      unitRef="U002">9997000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_f2ddee4413684a96b04aa98a5f3b7e6d"
      unitRef="U002">10021000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_a8f6449d314f4ba8b9eb3fdc932aebe6"
      unitRef="U001">-9863000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_b12052b84f7a4232910080d7bc5f990e"
      unitRef="U001">4748000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_c664e3c09b6148ee91cdeb329dcdd4be"
      unitRef="U001">-5000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_a78e7a6171d1416cb65883114a749d59"
      unitRef="U001">30000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_12a01d6ed911485a96240f7f2ff15cc1"
      unitRef="U001">-9868000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_0a73c66220f44385b57063917d0a867e"
      unitRef="U001">4778000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_76545618a92c4e2e847d7bee0a94a3e9"
      unitRef="U002">9911883</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_70e365f37d194fd988fad07b319eab64"
      unitRef="U001">139000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_41811175df2442f98031f147c20d9781"
      unitRef="U001">56282000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_e2fdbf4d8cf24fef9ecb0eec255c546b"
      unitRef="U001">9630000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_0c137a32f9214b8fbeb18796a3694e56"
      unitRef="U001">-32110000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_de2b5d0798584a7fa66e012a25c0267c"
      unitRef="U001">-79000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231"
      decimals="-3"
      id="Fact_1ef706c1c3214f1eb30ccc8a05c8d8ed"
      unitRef="U001">33862000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_1b2ae42a192c47c0b4f01802b7b7ac42"
      unitRef="U002">1875</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_88ee407701814295936cc10f7d26b15d"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_f80498bdd0de4ba9a4b48329a78a1fb3"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_1c8739dbd16c4b9a9742c0058305b851"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_ab68e49633fb468abc74642a4c7a931a"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_43d4c3da527144a48156dc0623a4c075"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_b76246ae6cb84212b03e13b6affe6ede"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_b6df49a369f24e31b5110b71eecb0069"
      unitRef="U002">58705</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_7d6a952111404ab6a666cbd420099c4e"
      unitRef="U001">1000</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_b3f0402d997c4f769140108c6285f24d"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_83f7f6a1eea54375a16260c6a55ade1c"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_b5d030a2f24247cc843c043623db82a1"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_099914591956455cb52aa6ed177100ff"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_e2e4ea92d5a14375a7bb43878a46fc3d"
      unitRef="U001">1000</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_5fbe6d225c544664aee772d4ba7deb10"
      unitRef="U002">13652</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_e71955dfa99b45479d2166b37e4dbde0"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_337dc3dab8694bca85a6ac0fa2ab8080"
      unitRef="U001">87000</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_84b213cf6e0e48e29baaf6907c73175b"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_03ade248eed648b9a1933180d9fabba8"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_f9781567814245e0bb9a14de322e4982"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_8263c6cc777b49958818e3d25c1b83f5"
      unitRef="U001">87000</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_5e6483a656a44093bfb09fee67d530dc"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_09129e578b1e4d958fbd2521380c84fd"
      unitRef="U001">860000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_d16ff05b84494c45bf9b098808d23023"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_33a70220c26e4c9daf33c8cf6d2ae19c"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_4767f28956ad4aa186febde0a33dbe60"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_f3e55871cf0e4e6b827726daa1319cf4"
      unitRef="U001">860000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_f7a9ec93ead54df0a7f7bfe3a228ebe2"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_7786ff55e8544d129295ae0ae52cc832"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_e26c4b92e48b4913a2f72723cbb90e21"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_d6ae3364a2ab4fc4b1075b4beb75aff1"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_afb2c6aa82544e9cadebd4344921135d"
      unitRef="U001">30000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_fc159d968d3e4c8eb7d4a34ab437a730"
      unitRef="U001">30000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_14473db1f9f040c6a44da18397d6abe1"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_579cd1e67f754544ba3e2fc8b55f8e71"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_3bfbf9c358ea46418ad7127159fd32df"
      unitRef="U001">4748000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_10bfeffbd8544efcaf6e651bc0a11051"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_528c65a63c2046dab351de4e2dfa9083"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_e7274cb65f8448c79a2b8e108281e293"
      unitRef="U001">4748000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_b2e691f5a8d246b2ae02fb6e0468a7f6"
      unitRef="U002">9958811</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_f7964df9451b4bcfb09661cc9eab0c92"
      unitRef="U001">140000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_af99d8848beb41f1b4d37d835ce467c6"
      unitRef="U001">57055000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_49cc3d31aa88428e89917b05256d7325"
      unitRef="U001">14378000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_a8edee4d299246f0a1d4a330e732da43"
      unitRef="U001">-32110000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_58ccab7b91b74bf29e11f392975d87eb"
      unitRef="U001">-49000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20231231"
      decimals="-3"
      id="Fact_e44455ba63bf4f73807ad0c42af22e96"
      unitRef="U001">39414000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_d5ada3917d014465968799c8e3858a99"
      unitRef="U002">74995</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_daf0e4d4351f4d908b503f546a725b48"
      unitRef="U001">1000</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_016e7157f7d248cf86f80987e8ba8ce5"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_44d655c1e3184294986ac9bcc716298a"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_e11e3b7527ed49e69ad374dd6954a33e"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_fe9b5977b7af411d95294c1d2e5fbefa"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_31ba323112d145e2ab4a2460e6ab1162"
      unitRef="U001">1000</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_8c9a8e19373546a486738b1042074ffe"
      unitRef="U002">10599</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_511d13f11300477ab9f5a29425daea21"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_99743025ab934ccaac9b3972d3124a1d"
      unitRef="U001">71000</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_a1d19936937c46ffb8b4f5734c5a0029"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_55a0530790e049a2a3d0324da96cdc7a"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_b2d746ee52354c0ab266b063d859117e"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_932fae7ec5e84fc0a3e63922fc5bf2ce"
      unitRef="U001">71000</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_c4b56e451ef14c218d9f059ca23ef383"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_fd4bb400687345a0bdfd9b51ee03f3b5"
      unitRef="U001">1157000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_d59aa3ee2e8643dcb39959eebbd20ba3"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_c4485af82f984ffaa3365c7c4c6c76a0"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_df297503b283431cb5b24207fd52aa31"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_ea4e768ad6a84c6f8dc488667b4934d8"
      unitRef="U001">1157000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_508f40c9e3a24dd5962aca099499117c"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_c92d2555fb4f4e7bb339f1a250ef4314"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_77c191a5b19d4258b379b7bf4e5dc5e1"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_c82898ef706d470d83929ccaa6a7a6be"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_20bed914789c481bbda12d404065ce1a"
      unitRef="U001">-5000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_bd182215128641299f10e706b6069e37"
      unitRef="U001">-5000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ca831f062d4a41dfaf5f43dc726fd168"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_4d9c008e8d294f67a7cda50950c04b40"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_d4e9a3e2b1004b358010255a91dc3ceb"
      unitRef="U001">-9863000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_926f538deeed428788ec063fb5b16646"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_5ad72ed7e1874846bbb59a1db880164b"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_954e697ac59642b2a0abe6e7f4417caf"
      unitRef="U001">-9863000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_eb423139fe6143b59010e507dee6b15c"
      unitRef="U002">10023207</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="c20241231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_a334ceabef0b407f8c249d25a1572b2f"
      unitRef="U001">141000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20241231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_6ba365bffcef4a3ebdf46328f9463c7f"
      unitRef="U001">58141000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20241231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_f2be9d52f8f2476c8f7d58bc4132291d"
      unitRef="U001">4515000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20241231_StatementEquityComponentsAxis_TreasuryStockCommonMember"
      decimals="-3"
      id="Fact_110de951c97d48c9930bf030c6bc0cdd"
      unitRef="U001">-32110000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20241231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_2a81968837774794a59fa58048bd6880"
      unitRef="U001">-54000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20241231"
      decimals="-3"
      id="Fact_8045ae1ffab048398215e51816ff1055"
      unitRef="U001">30633000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_2d5eb2e9232c4264b3d8fa00a565b686"
      unitRef="U001">-9863000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_31a382fac862431cbd03503ac68fd721"
      unitRef="U001">4748000</us-gaap:NetIncomeLoss>
    <us-gaap:ShareBasedCompensation
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_9ac0181595de400fa8089860ecf1956f"
      unitRef="U001">1157000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_47a3f2b666f04f91add4520bab4ac1b3"
      unitRef="U001">860000</us-gaap:ShareBasedCompensation>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_ea0658c7def544759dbf0bf6491c013a"
      unitRef="U001">1037000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_22998a2367e545fab0bf6c9de5605a3a"
      unitRef="U001">1489000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_97380fed6527440c9e6c6b74f0d0b91b"
      unitRef="U001">6304000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_96a20a12f132414098b0c70594e843ae"
      unitRef="U001">1020000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:ForeignCurrencyTransactionGainLossUnrealized
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_c18a5fc1302449c2b423a1267907da37"
      unitRef="U001">-89000</us-gaap:ForeignCurrencyTransactionGainLossUnrealized>
    <us-gaap:ForeignCurrencyTransactionGainLossUnrealized
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_63099241cad94149a739b8c0b021e496"
      unitRef="U001">30000</us-gaap:ForeignCurrencyTransactionGainLossUnrealized>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_8ec2b59af9f14f07bd5490cfcc3d701a"
      unitRef="U001">-3315000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_27a5b7dc5840485faa04d34943df8dfd"
      unitRef="U001">-4248000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_052d2dfb359f42eaaa3a59d3c10a47b7"
      unitRef="U001">0</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_573838b9ca2f49209b015aa5d69605d5"
      unitRef="U001">-1500000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_66a8089ee4a0497a9466e1702d6d25a3"
      unitRef="U001">-1607000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_f2a1bb09e7ab4932bd2825a54b67b8da"
      unitRef="U001">5658000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidTaxes
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_7a10f902fbc44c7cb5005a1cada60859"
      unitRef="U001">80000</us-gaap:IncreaseDecreaseInPrepaidTaxes>
    <us-gaap:IncreaseDecreaseInPrepaidTaxes
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_a4c454fac6f94700aa94714c8e230be4"
      unitRef="U001">322000</us-gaap:IncreaseDecreaseInPrepaidTaxes>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_ea7d640db3f54195a04da51f4ef032bf"
      unitRef="U001">43000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_19888de1a0b143e794b3928ea73932a1"
      unitRef="U001">10000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_cc3dbf4403af48fd9ccf21839dbbdcf0"
      unitRef="U001">149000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_d7b707ef3f484f6f9ad8d8e74fd835ed"
      unitRef="U001">-2988000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_ec2af548a4b64bfa85f96d7867e5eb81"
      unitRef="U001">-1811000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_1e639b26d0fe48c3a42de2f95164a69e"
      unitRef="U001">650000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_9223a90022924302b2fa0c0c5dba5a2b"
      unitRef="U001">1861000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_1568cdbf273e400991b754dcdbf83487"
      unitRef="U001">5507000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_d66af15cd3d54ee0ae1e068645372512"
      unitRef="U001">322000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_1dd7a897f50a48f788b8866c94fb2f50"
      unitRef="U001">901000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_a4ff8854be624d89a469220afaf833e5"
      unitRef="U001">-322000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_0b1fe2d9a48747748af1a59daf66e256"
      unitRef="U001">-901000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_86de16550a094d6eb00603aa5fd0cdc0"
      unitRef="U001">750000</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_36e1d5ac5b4a4ddca1bc44833e8439aa"
      unitRef="U001">0</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_5dc1ed4017254927873b3c3a4afff452"
      unitRef="U001">71000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_d9918320542b49f984273d73ab13a8da"
      unitRef="U001">87000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsOfLoanCosts
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_acad41fdd7e84da0bf1b5f877718de73"
      unitRef="U001">45000</us-gaap:PaymentsOfLoanCosts>
    <us-gaap:PaymentsOfLoanCosts
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_6de3de05e1ba46fcacf49599bb2173d6"
      unitRef="U001">0</us-gaap:PaymentsOfLoanCosts>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_a11b1a38d1ee426aa98b833843d41b80"
      unitRef="U001">634000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_acef8849aa864e05b6e0c212c58ca1bc"
      unitRef="U001">-87000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_d39116e2836b437a95961cb2f657e2d4"
      unitRef="U001">-100000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_7b65faf56381488b99d42d0a7ab2bd4e"
      unitRef="U001">-144000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_1e4d86dd412547faac7d0d8465968f63"
      unitRef="U001">2073000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_0bb229d843a74ffa9798381275f4fbae"
      unitRef="U001">4375000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20231231"
      decimals="-3"
      id="Fact_13f32c6074b947efb8becff4904c278c"
      unitRef="U001">12321000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20221231"
      decimals="-3"
      id="Fact_e65734941c8a4dfab10893536d4e2e00"
      unitRef="U001">7946000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20241231"
      decimals="-3"
      id="Fact_dfb768a9ea044a49b000b5f22e9fff3e"
      unitRef="U001">14394000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20231231"
      decimals="-3"
      id="Fact_ac89d22a68ad460e9997a9a2b667629d"
      unitRef="U001">12321000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_79777676408142fca66ebad738aada05"
      unitRef="U001">272000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_a89f93b7bc40416baef76dcd88f608ce"
      unitRef="U001">268000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaid
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_c47161ec0c7e4714aa6fb082d139dc42"
      unitRef="U001">499000</us-gaap:IncomeTaxesPaid>
    <us-gaap:IncomeTaxesPaid
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_fa515421eb0d4fac8baa025de32dd4b0"
      unitRef="U001">160000</us-gaap:IncomeTaxesPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_1255971997634ab895c16e57c6817632"
      unitRef="U001">9000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_6467a61154ba454b8b2cb8f0f6d6852a"
      unitRef="U001">23000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:NatureOfOperations
      contextRef="c20240101to20241231"
      id="Text_51fc270145224180b8ac33ab40af309e">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;1. Description of business&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;TransAct Technologies Incorporated (together with its subsidiaries, &#x201c;TransAct,&#x201d; the &#x201c;Company,&#x201d; &#x201c;we,&#x201d; &#x201c;us,&#x201d; or &#x201c;our&#x201d;), which has its headquarters in
      Hamden, Connecticut and its primary operating facility in Ithaca, New York, operates in one operating segment: software-driven technology
      and printing solutions for high growth markets including food service technology, casino and gaming and &#x201c;point of sale&#x201d; (&#x201c;POS&#x201d;) automation markets.&#160; Our solutions are designed from the ground up based on market and customer requirements and are sold
      under the BOHA!&lt;sup&gt;TM&lt;/sup&gt;, AccuDate&#x2122;, Epic, Ithaca&#xae;, and EPICENTRAL&lt;sup&gt;&#xae;&lt;/sup&gt; product brands.&#160; We sell our products to original equipment manufacturers, value-added resellers, select distributors, and directly to end-users.&#160; Our product
      distribution spans across the Americas, Europe, the Middle East, Africa, Asia, Australia, New Zealand, the Caribbean Islands and the South Pacific. TransAct also provides world-class service, spare parts, accessories and printing supplies to its
      growing worldwide installed base of products.&#160; We also generate revenue from the after-market side of the business, providing printer and terminal service, consumables and spare parts in addition to revenue from our two software solutions; (i) our line of BOHA! software applications used to automate the back-of-house operations of restaurants, convenience stores and
      food service operators and (ii) the EPICENTRAL Print System (&#x201c;EPICENTRAL&#x201d;), that enables casino operators to create promotional coupons and marketing messages and print them in real time at the slot machine.&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;&lt;br/&gt;
      &lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt;After strong demand during most of 2023 due in part to our primary competitor&#x2019;s struggle to deliver products in the face
        of supply chain constraints, in late 2023, we began to see indications of a temporary slowdown in demand in the casino and gaming market, as customers that had built up excess inventory due to supply chain concerns advised us that they would
        temporarily reduce orders until their stock normalized. This slowdown impacted our results in the fourth quarter of 2023 and during the year ended December 31, 2024. After reviewing whether conditions and/or events raise substantial doubt about our
        ability to meet future financial obligations over the 12 months following the date on which the Consolidated Financial Statements included in this Annual Report on Form 10-K (this &#x201c;Form 10-K&#x201d;) were issued, including consideration of the actions
        taken to manage expenses and liquidity, we believe that our net cash to be provided by operations combined with our cash and cash equivalents and borrowing availability under our revolving credit facility will provide sufficient liquidity to fund
        our current obligations, capital spending, and working capital requirements and to comply with the financial covenants of our credit facility over at least 12 months following such issuance date.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Use of Assumptions and Estimates&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;
     &lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;Management&#x2019;s belief that the Company will
            be able to fund its planned operations over the 12 months following the date on which the Consolidated Financial Statements were issued is based on assumptions which involve significant judgment and estimates of future revenues, inflation,
            interest rates, capital expenditures and other operating costs. Our current assumption is that consumer traffic will continue to remain strong ay casinos and restaurants during 2025. We cannot predict the ultimate impact of the current economic
            environment, including inflation, interest rates and supply chain disruptions on our customers, which may impact sales. We believe that we are positioned to withstand the impact of any potential economic downturn and we would be able to take
            additional financial and operational actions to cut costs and/or increase liquidity.&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;
       &lt;br/&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt;In addition, the presentation of the accompanying audited Consolidated Financial Statements requires us to make estimates
        and judgments that affect the reported amounts of assets, liabilities, revenue and expenses, and the disclosure of contingent assets and liabilities. Our estimates include those related to revenue recognition, accounts receivable, inventory
        obsolescence, goodwill and intangible assets, the valuation of deferred tax assets and liabilities, depreciable lives of equipment, share-based compensation and contingent liabilities. We base our estimates on historical experience and on various
        other assumptions that we believe to be reasonable under the circumstances. Actual results could differ from those estimates used.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Smaller Reporting Company&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;
     &lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As a smaller reporting company, as defined in Item 10(f)(1) of Regulation S-K, we may choose to prepare our disclosures relying on certain scaled
      disclosure requirements for smaller reporting companies in Regulation S-K and in Article 8 of Regulation S-X.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The scaled disclosure requirements for smaller reporting companies permit us (i) to include less extensive narrative disclosure than required of other
      reporting companies, particularly in the description of executive compensation in our proxy statement and (ii) to provide audited financial statements for two fiscal years in our Form 10-K, in contrast to other reporting companies, which must provide
      audited financial statements for three years.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;We will cease to be a smaller reporting company if we have (i) equal to or greater than $250 million in market value of our shares held by non-affiliates as of the last
        business day of our second fiscal quarter, (ii) equal to or greater than $100 million in annual revenue for the most recent fiscal year or (iii) less than $100 million in annual revenue for the most recent fiscal year and the market value of our
        shares held by non-affiliates exceeds $700 million as of the last business day of our second fiscal quarter.&lt;/span&gt;&lt;/div&gt;
</us-gaap:NatureOfOperations>
    <us-gaap:NumberOfOperatingSegments
      contextRef="c20240101to20241231"
      decimals="INF"
      id="Fact_fbda6c77376c44ac84406e6077c71128"
      unitRef="U004">1</us-gaap:NumberOfOperatingSegments>
    <tact:NumberOfSoftwareSolutions
      contextRef="c20241231"
      decimals="INF"
      id="Fact_585d0ad6f3154607b384cba8094d21f6"
      unitRef="U005">2</tact:NumberOfSoftwareSolutions>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="c20240101to20241231"
      id="Text_70fcc5388f9046ea8fc8ef8fad011540">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;2. Summary of significant accounting policies&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Principles of consolidation: &lt;/span&gt;The accompanying Consolidated Financial Statements include the
      audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Certain amounts for prior years have been reclassified to conform to the current year presentation.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Use of estimates&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; The preparation of Consolidated Financial
      Statements in conformity with accounting principles generally accepted in the United States of America (&#x201c;GAAP&#x201d;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and
      disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; We consider all highly
      liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"&gt;Accounts receivable and credit losses&lt;/span&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;: The Company records accounts receivable when the right to consideration becomes
          unconditional. We establish an allowance for expected credit losses to ensure trade receivables are valued appropriately. &lt;/span&gt; &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
        &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt;We are exposed to credit losses primarily through our net sales of products and services to our customers which are recorded as Accounts Receivable, net on the
        Consolidated Balance Sheets. We evaluate each customer&#x2019;s ability to pay through assessing customer creditworthiness, historical experience and current economic conditions through a reasonable forecast period. Factors considered in our evaluation of
        assessing collectability and risk include: underlying value of any collateral or security interests, significant past due balances, historical losses and existing economic conditions including country and political risk. There can be no assurance
        that actual results will not differ from estimates or that consideration of these factors in the future will not result in an increase or decrease to the allowance for credit losses. We may require collateral or prepayment to mitigate credit risk.&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt; &lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We estimate expected credit losses of financial assets with similar risk characteristics. We determine an asset is impaired when our assessment identifies there is a
          risk that we will be unable to collect amounts due according to the contractual terms of the agreement. We monitor our ongoing credit exposure through reviews of customer balances against contract terms and due dates, current economic conditions
          and dispute resolution. Estimated credit losses are written off in the period in which the financial asset is no longer collectible.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman';"&gt;&#160;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt; &lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;The following table summarizes the activity
          recorded in the allowance for expected credit losses related to accounts receivable:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Years Ended December 31,&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;768&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;351&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Additions charged to costs and expenses&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deductions&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(294&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(189&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;474&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;768&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;   &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Inventories:&lt;/span&gt; Inventories are stated at the lower
        of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completion, disposal and transportation, historical usage and estimates of future
        demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.&lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
      &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Fixed assets:&lt;/span&gt; Fixed assets are stated at cost.&#160; Depreciation is recorded using the
      straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is five years; machinery and equipment is ten years; furniture and office equipment is five years
      to ten years; and computer software and equipment is three years to seven years.&#160; Leasehold improvements are amortized over the shorter of the term of the
      lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is
      recognized.&#160; Depreciation expense was $0.9 and $1.3 million in 2024 and 2023, respectively.&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Leases:&lt;/span&gt; We account for leases in accordance with ASC 842, &#x201c;Leases&#x201d; (&#x201c;ASC 842&#x201d;), which requires lessees to apply a
      dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on
      an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12
      months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as
      financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We elected certain practical expedients available under ASC 842 upon adoption. We applied the practical expedient for short-term leases. We have
      lease agreements that include lease and non-lease components, and we did not elect the practical expedients to combine these components for any of our leases.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing or sales-type
      leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#x201c;Right-of-use assets, net&#x201d; and &#x201c;Lease liabilities&#x201d; in our Consolidated Balance Sheets.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease
      payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company
      determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease
      right of use asset excludes lease incentives. Our leases have remaining lease terms of one year to three years, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets
      and liabilities reflect only the options we are reasonably certain that we will exercise.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
      &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Goodwill and Intangible assets&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; We acquire
      businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#x201c;Goodwill,&#x201d;
      acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test
      to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to
      first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant
      events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test
      is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#x2019;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may
      trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired
      assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment
      when appropriate. All of our finite lived intangible assets are fully amortized as of December 31, 2024.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2024, we have determined that no
      goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2024 when our annual review for impairment was performed.&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Revenue recognition:&lt;/span&gt; We account for revenue in accordance with ASC Topic 606: Revenue
      from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance
      obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#x2019;s transaction price is allocated to each distinct performance
      obligation and recognized as revenue when, or as, the performance obligation is satisfied.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the
      customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction
      price utilizing either the &#x201c;expected value&#x201d; method or the &#x201c;most likely amount&#x201d; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#x2019;s judgment, it is probable
      that a significant future reversal of cumulative revenue under the contract will not occur.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a
      point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and
      gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to
      the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#x2019;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal
      acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as
      control of the product is transferred to the customer and our performance obligation is completed.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it
      is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our
      food service technology terminals and maintenance agreements (including free one-year maintenance received by customers upon completion of
      EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to
      the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract
      period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#x201c;standalone selling price&#x201d; method to
      determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price
      discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment
      approach.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period
      of the cost to obtain a contract is less than 12 months.&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Disaggregation of revenue&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our
      revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Year Ended December 31, 2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;span style="font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,719&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,382&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,101&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;POS automation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,522&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,826&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,348&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,883&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;691&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,574&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,485&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,899&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;43,384&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Year Ended December 31, 2023&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;&#160;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,159&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,149&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,308&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;POS automation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,805&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,922&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;28,715&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,477&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;41,192&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,381&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;828&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,209&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;58,060&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,571&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;72,631&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Contract balances&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the
      customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included
      within &#x201c;Accounts Receivable, net&#x201d; and &#x201c;Other Assets&#x201d; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#x201c;Accrued Liabilities&#x201d; in current
      liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160;
      Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid
      software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2024, we recognized revenue of $1.1 million related to our contract liabilities as of December 31, 2023.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net contract (liabilities) assets consist of the following:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;span style="font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unbilled receivables, current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;106&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;145&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unbilled receivables, non-current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;32&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;120&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer pre-payments&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(164&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(155&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue, current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,107&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,079&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue, non-current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(246&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(209&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net contract (liabilities) assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,379&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,178&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Remaining performance obligations&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our
      customer.&#160; As of December 31, 2024, the aggregate amount of the transaction price allocated to remaining performance obligations was $6.3 million. The Company expects to recognize revenue on $6.0
      million of its remaining performance obligations within the next 12 months following December 31, 2024, $0.2 million within the next &lt;span style="-sec-ix-hidden:Fact_070b19bc2e87417485287551ea3163d4"&gt;24&lt;/span&gt; months
      following December 31, 2024 and the&#160;&lt;span style="-sec-ix-hidden:Fact_e37ea88e93bd42529bfb23dbe89fa89f"&gt;balance&lt;/span&gt; of these remaining performance obligations within the next &lt;span style="-sec-ix-hidden:Fact_f50c8aea3ef443c8a2609b35c6a05cf4"&gt;36&lt;/span&gt; months following December 31, 2024.&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Concentration of credit risk:&lt;/span&gt;&#160; Financial instruments that potentially expose us to
      concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable from customers representing 10% or more of total accounts receivable, net during the years ended December 31, 2024 and 2023 were as
      follows:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;
                &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Light &amp;amp; Wonder Gaming, Inc.&lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International Gaming Technology (&#x201c;IGT&#x201d;) &lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;28&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Sales to customers representing 10% or more of total net sales during the years ended December 31, 2024 and 2023 were as follows:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Light &amp;amp; Wonder Gaming, Inc.&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;11&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;%&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;6&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;%&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;IGT&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Engineering, design and product development:&lt;/span&gt; Engineering, design and product
      development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $7.0 million and $9.4 million of research
      and development expenses in 2024 and 2023,
      respectively.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological
      feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in
      determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been
      included in cost of sales over the estimated life of the product.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Advertising:&lt;/span&gt; Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in
      selling and marketing expense on the accompanying Consolidated Statements of Operations for 2024 and 2023 totaled $1.2 million and $1.7 million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Income taxes:&lt;/span&gt; The income tax amounts reflected in the accompanying Consolidated Financial Statements
      are accounted for under the liability method in accordance with ASC 740, &#x201c;Income Taxes&#x201d; (&#x201c;ASC 740&#x201d;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial
      statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which
      those temporary differences are expected to be recovered or settled. A valuation allowance is provided for certain deferred tax assets if it is more likely than not that the Company will not realize some portion of the deferred tax assets through
      future operations.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. See Note 11 &#x2013; Income Taxes.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Foreign currency translation:&lt;/span&gt; The financial position and results of operations of our
      foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been
      translated at the weighted average rate for the period, and shareholders&#x2019; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#x2019; equity as a cumulative
      translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated
      Statements of Operations.&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Share-based payments:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&#160;&lt;/span&gt;At December 31, 2024, we have share-based employee compensation plans, which are described more fully in Note 10 - Stock incentive plans. We account for those plans
      under the recognition and measurement principles of ASC 718, &#x201c;Compensation &#x2013; Stock Compensation.&#x201d;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the
      employee&#x2019;s requisite service period.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards. The key assumptions for this valuation method
      include the expected term of the option, our stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the
      determination of compensation expense.&#160; Forfeitures are recognized as they occur.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;span style="color: rgb(0, 0, 0); font-style: italic; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;Net income (loss) per share&lt;/span&gt;:&lt;/span&gt; We report net income or loss per share in accordance with ASC 260, &#x201c;Earnings per Share (EPS).&#x201d; Under this guidance, basic EPS, which excludes dilution, is computed by
      dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock
      were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore,
      these instruments are excluded from the computation of diluted EPS.&#160; See Note 12 - Earnings per share.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt;&lt;span style="font-weight: bold; font-style: italic; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Recently issued accounting pronouncements&lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;On November 27, 2023, the FASB issued ASU 2023-07, &lt;span style="font-style: italic;"&gt;Segment Reporting (Topic 280)&lt;/span&gt;.&#160; The
              amendments improve reportable segment disclosures requirements and clarify circumstances in which an entity can disclose multiple segment measures of profit or loss, provide new segment disclosure requirements for entities with a single
              reportable segment and contain other disclosure requirements.&#160; These amendments are effective for fiscal years beginning after December 15, 2023 and for interim periods beginning after December 15, 2024. These segment disclosure requirements
              must be applied retrospectively to all periods presented in the financial statements.&#160; We adopted this standard effective January 1, 2024, and this standard did not have a material impact on the Company&#x2019;s Consolidated Financial Statements. We
              have adopted this standard for our fiscal year 2024 annual financial statements and interim financial statements thereafter and have applied this standard retrospectively for all prior periods presented in the financial statements. See Note 7
              &#x2013; Segment Reporting for further information.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
            &lt;/div&gt;

&lt;div&gt;
            On December 14, 2023, the FASB issued ASU 2023-09, &lt;span style="font-style: italic;"&gt;Income Taxes (Topic 740)&lt;/span&gt;.&#160;&#160; This ASU requires the use of consistent categories and greater disaggregation in tax rate reconciliations and income taxes
            paid disclosures. These amendments are effective for fiscal years beginning after December 15, 2024. These income tax disclosure requirements can be applied either prospectively or retrospectively to all periods presented in the financial
            statements. We are currently evaluating the impact of adopting this standard; however, we do not expect it to have a material impact on our Consolidated Financial Statements.
            &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
              &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In November 2024, the FASB issued ASU 2024-03, Income Statement&#x2014;Reporting Comprehensive Income&#x2014;Expense Disaggregation Disclosures (Subtopic 220-40):
              Disaggregation of Income Statement Expenses. The amendments in this update require footnote disclosures on disaggregated information about specific categories underlying certain income statement expense line items that are considered
              relevant. This includes items such as the purchase of inventory, employee compensation, depreciation, and intangible asset amortization. The amendments in ASU 2024-03 are effective for fiscal years beginning after December 15, 2026. Early
              adoption is permitted. Adoption of this ASU will result in additional disclosure, but will not impact our consolidated financial position, results of operations, or cash flows.&lt;/div&gt;
</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_2d293472d15041ebbc472574f55ddd17">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Principles of consolidation: &lt;/span&gt;The accompanying Consolidated Financial Statements include the
      audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Certain amounts for prior years have been reclassified to conform to the current year presentation.&lt;/div&gt;
</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="c20240101to20241231"
      id="Text_b1b972a8872d4c509b46c4009efc9793">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Use of estimates&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; The preparation of Consolidated Financial
      Statements in conformity with accounting principles generally accepted in the United States of America (&#x201c;GAAP&#x201d;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and
      disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.&lt;/div&gt;
</us-gaap:UseOfEstimates>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_0e53aba468e44a79aa7368b3cac37178">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; We consider all highly
      liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.&lt;/div&gt;
</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy
      contextRef="c20240101to20241231"
      id="Text_771b1dfd57794242a8fbaa089ec08b18">
&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-variant: normal; text-transform: none;"&gt;Accounts receivable and credit losses&lt;/span&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;: The Company records accounts receivable when the right to consideration becomes
          unconditional. We establish an allowance for expected credit losses to ensure trade receivables are valued appropriately. &lt;/span&gt; &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: normal; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
        &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt;We are exposed to credit losses primarily through our net sales of products and services to our customers which are recorded as Accounts Receivable, net on the
        Consolidated Balance Sheets. We evaluate each customer&#x2019;s ability to pay through assessing customer creditworthiness, historical experience and current economic conditions through a reasonable forecast period. Factors considered in our evaluation of
        assessing collectability and risk include: underlying value of any collateral or security interests, significant past due balances, historical losses and existing economic conditions including country and political risk. There can be no assurance
        that actual results will not differ from estimates or that consideration of these factors in the future will not result in an increase or decrease to the allowance for credit losses. We may require collateral or prepayment to mitigate credit risk.&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt; &lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We estimate expected credit losses of financial assets with similar risk characteristics. We determine an asset is impaired when our assessment identifies there is a
          risk that we will be unable to collect amounts due according to the contractual terms of the agreement. We monitor our ongoing credit exposure through reviews of customer balances against contract terms and due dates, current economic conditions
          and dispute resolution. Estimated credit losses are written off in the period in which the financial asset is no longer collectible.&lt;/div&gt;

&lt;div style="font-family: 'Times New Roman';"&gt;&#160;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt; &lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;The following table summarizes the activity
          recorded in the allowance for expected credit losses related to accounts receivable:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Years Ended December 31,&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;768&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;351&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Additions charged to costs and expenses&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deductions&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(294&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(189&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;474&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;768&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_a14c9af619084351b73446a5d2ba6270">
&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt; &lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;span style="font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;The following table summarizes the activity
          recorded in the allowance for expected credit losses related to accounts receivable:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Years Ended December 31,&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;768&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;351&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Additions charged to costs and expenses&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deductions&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(294&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(189&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;474&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;768&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_fd597c40dfdf4fbe8b4e71cda452e676"
      unitRef="U001">768000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_1c6e4193e4424a21ace8f3e1786d629e"
      unitRef="U001">351000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_f1e1da0156dc419fbe4f97fcdfc75d30"
      unitRef="U001">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_04901ed4c4e74a9ca899ee62f963994c"
      unitRef="U001">606000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_43ec5df03304436f9ca0b8723d7b2f16"
      unitRef="U001">294000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_a83a0e74d60748669338113ac136eb6d"
      unitRef="U001">189000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_56c4b633d62040128b728458738a28ce"
      unitRef="U001">474000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_682cbff586f640a089844f53806ae20f"
      unitRef="U001">768000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_cbf9ab1a6272485593a81172e5594a9f">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Inventories:&lt;/span&gt; Inventories are stated at the lower
        of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completion, disposal and transportation, historical usage and estimates of future
        demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.&lt;/span&gt; &lt;/div&gt;
</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_887707febec74b0aae4dcd2b02299533">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Fixed assets:&lt;/span&gt; Fixed assets are stated at cost.&#160; Depreciation is recorded using the
      straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is five years; machinery and equipment is ten years; furniture and office equipment is five years
      to ten years; and computer software and equipment is three years to seven years.&#160; Leasehold improvements are amortized over the shorter of the term of the
      lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is
      recognized.&#160; Depreciation expense was $0.9 and $1.3 million in 2024 and 2023, respectively.&lt;/div&gt;
</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_ToolsDiesAndMoldsMember"
      id="Fact_016d887912e74a3d8c6da7613da6117d">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"
      id="Fact_941088237d1c4105b2103e5790fac76f">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MinimumMember"
      id="Fact_259b5ee1928e4c7f8dea7974adf416da">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MaximumMember"
      id="Fact_94d253879d4c4b909ed6434aca846e8b">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MinimumMember"
      id="Fact_b45d06627b124d49a592d77bad2718b6">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MaximumMember"
      id="Fact_625baa09e2504074b099367b3fe536c1">P7Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:Depreciation
      contextRef="c20240101to20241231"
      decimals="-5"
      id="Fact_72f49060245c45af8efee32d099a3c0b"
      unitRef="U001">900000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="c20230101to20231231"
      decimals="-5"
      id="Fact_b7d0056b36c34ed7a432052632fc1cf3"
      unitRef="U001">1300000</us-gaap:Depreciation>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_3b66bdb6653c45f5890204e3efcb6f7b">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Leases:&lt;/span&gt; We account for leases in accordance with ASC 842, &#x201c;Leases&#x201d; (&#x201c;ASC 842&#x201d;), which requires lessees to apply a
      dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on
      an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12
      months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as
      financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We elected certain practical expedients available under ASC 842 upon adoption. We applied the practical expedient for short-term leases. We have
      lease agreements that include lease and non-lease components, and we did not elect the practical expedients to combine these components for any of our leases.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing or sales-type
      leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#x201c;Right-of-use assets, net&#x201d; and &#x201c;Lease liabilities&#x201d; in our Consolidated Balance Sheets.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease
      payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company
      determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease
      right of use asset excludes lease incentives. Our leases have remaining lease terms of one year to three years, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets
      and liabilities reflect only the options we are reasonably certain that we will exercise.&lt;/div&gt;
</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm
      contextRef="c20241231_RangeAxis_MinimumMember"
      id="Fact_afc41582224040fb9724731c26103f66">P1Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm
      contextRef="c20241231_RangeAxis_MaximumMember"
      id="Fact_ed5c6205cbc04b4a93962956b87bda92">P3Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_c5fd443adfea4a8dbb4ca3601125da2b">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Goodwill and Intangible assets&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; We acquire
      businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#x201c;Goodwill,&#x201d;
      acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test
      to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to
      first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant
      events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test
      is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#x2019;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may
      trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired
      assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment
      when appropriate. All of our finite lived intangible assets are fully amortized as of December 31, 2024.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2024, we have determined that no
      goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2024 when our annual review for impairment was performed.&lt;/div&gt;
</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetImpairment
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_9ad09064a20047d3b047578cd768327f"
      unitRef="U001">0</us-gaap:GoodwillAndIntangibleAssetImpairment>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_54c32f8a991c4541a5a8a27b638619ea">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Revenue recognition:&lt;/span&gt; We account for revenue in accordance with ASC Topic 606: Revenue
      from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance
      obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#x2019;s transaction price is allocated to each distinct performance
      obligation and recognized as revenue when, or as, the performance obligation is satisfied.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the
      customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction
      price utilizing either the &#x201c;expected value&#x201d; method or the &#x201c;most likely amount&#x201d; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#x2019;s judgment, it is probable
      that a significant future reversal of cumulative revenue under the contract will not occur.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a
      point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and
      gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to
      the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#x2019;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal
      acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as
      control of the product is transferred to the customer and our performance obligation is completed.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it
      is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our
      food service technology terminals and maintenance agreements (including free one-year maintenance received by customers upon completion of
      EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to
      the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract
      period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#x201c;standalone selling price&#x201d; method to
      determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price
      discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment
      approach.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period
      of the cost to obtain a contract is less than 12 months.&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Disaggregation of revenue&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our
      revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Year Ended December 31, 2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;span style="font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,719&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,382&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,101&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;POS automation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,522&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,826&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,348&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,883&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;691&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,574&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,485&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,899&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;43,384&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Year Ended December 31, 2023&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;&#160;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,159&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,149&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,308&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;POS automation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,805&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,922&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;28,715&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,477&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;41,192&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,381&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;828&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,209&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;58,060&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,571&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;72,631&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Contract balances&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the
      customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included
      within &#x201c;Accounts Receivable, net&#x201d; and &#x201c;Other Assets&#x201d; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#x201c;Accrued Liabilities&#x201d; in current
      liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160;
      Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid
      software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2024, we recognized revenue of $1.1 million related to our contract liabilities as of December 31, 2023.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net contract (liabilities) assets consist of the following:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;span style="font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unbilled receivables, current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;106&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;145&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unbilled receivables, non-current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;32&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;120&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer pre-payments&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(164&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(155&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue, current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,107&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,079&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue, non-current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(246&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(209&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net contract (liabilities) assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,379&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,178&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
        &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Remaining performance obligations&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our
      customer.&#160; As of December 31, 2024, the aggregate amount of the transaction price allocated to remaining performance obligations was $6.3 million. The Company expects to recognize revenue on $6.0
      million of its remaining performance obligations within the next 12 months following December 31, 2024, $0.2 million within the next &lt;span style="-sec-ix-hidden:Fact_070b19bc2e87417485287551ea3163d4"&gt;24&lt;/span&gt; months
      following December 31, 2024 and the&#160;&lt;span style="-sec-ix-hidden:Fact_e37ea88e93bd42529bfb23dbe89fa89f"&gt;balance&lt;/span&gt; of these remaining performance obligations within the next &lt;span style="-sec-ix-hidden:Fact_f50c8aea3ef443c8a2609b35c6a05cf4"&gt;36&lt;/span&gt; months following December 31, 2024.&lt;/div&gt;
</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation
      contextRef="c20240101to20241231"
      id="Fact_f75b41ff9d3b485bb99232ba8d83feb0">P1Y</tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_6ec54f25df26416e9ccd831af7f9af1f">
&lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;Disaggregation of revenue&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our
      revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Year Ended December 31, 2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;span style="font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,719&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,382&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,101&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;POS automation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,361&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,522&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,826&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,348&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,883&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;691&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,574&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,485&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,899&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;43,384&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Year Ended December 31, 2023&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;&#160;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15,159&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,149&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,308&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;POS automation&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,805&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;117&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,922&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;28,715&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,477&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;41,192&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 7.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,381&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;828&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,209&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; margin-left: 16.2pt; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;58,060&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,571&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;72,631&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_82f8bf1b074a4a01900dd2c81f3e8558"
      unitRef="U001">14719000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_a106c59b69fa4a558922a60b7235be15"
      unitRef="U001">1382000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_FoodServiceTechnologyMember"
      decimals="-3"
      id="Fact_c69deaf0bdbe4577acecc39b12f52bcd"
      unitRef="U001">16101000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_780eb84280984f54beeddf18bb91de33"
      unitRef="U001">3361000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_4640362b16ea44038d761d810c0f5d6d"
      unitRef="U001">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_PosAutomationAndBankingMember"
      decimals="-3"
      id="Fact_1e230aad8827476bab56ecf15f312614"
      unitRef="U001">3361000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_f464bada513e4cc3a1e7d513cbc1d2c0"
      unitRef="U001">12522000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_d6a1c7141bd54efcb30a25a5cbb7d723"
      unitRef="U001">7826000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_CasinoAndGamingMember"
      decimals="-3"
      id="Fact_c43bb8afebb5424990d4562709f201b4"
      unitRef="U001">20348000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_cdd36a2fd7074817a4f899715e2e57c9"
      unitRef="U001">2883000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_4241bd0ba7704a2dbd347ce8393cc8ae"
      unitRef="U001">691000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ProductOrServiceAxis_TransactServicesGroupMember"
      decimals="-3"
      id="Fact_a9388e5410a44855ba28725e038f7dad"
      unitRef="U001">3574000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_64691ef178424bda8acc0cbf327d214c"
      unitRef="U001">33485000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_8067bd617ceb4300bc40146946638f3a"
      unitRef="U001">9899000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_a88bad055097443496a45cd604139ea5"
      unitRef="U001">43384000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_1dbd7691ad564190889c5dd46acb596c"
      unitRef="U001">15159000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_16ca79227764406381ae1ca35543646f"
      unitRef="U001">1149000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_FoodServiceTechnologyMember"
      decimals="-3"
      id="Fact_2a1e3a730b1d491dbc50e4170a270cd1"
      unitRef="U001">16308000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_a0cccb1a702e49e28867b208d756d253"
      unitRef="U001">6805000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_593c9db47fed457484f792c6d552fa53"
      unitRef="U001">117000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_PosAutomationAndBankingMember"
      decimals="-3"
      id="Fact_d009b572f4604282a4631efe37919347"
      unitRef="U001">6922000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_dbdae0dcead6480eb579dda5fb747a64"
      unitRef="U001">28715000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_ab0e69e154e94a4b85be4e0bf99e150e"
      unitRef="U001">12477000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_CasinoAndGamingMember"
      decimals="-3"
      id="Fact_50c84947e86e475a8a0694f48c4bf301"
      unitRef="U001">41192000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_72313bbbc66049fa9f35c09293d76295"
      unitRef="U001">7381000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_8000e1bfea534635ab759460fd08a49d"
      unitRef="U001">828000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ProductOrServiceAxis_TransactServicesGroupMember"
      decimals="-3"
      id="Fact_cdbf645c6e234238a8c04402f45ed26f"
      unitRef="U001">8209000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_539169f0f0f442008f72531f6c0d5a7e"
      unitRef="U001">58060000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_73b89478cf9c4c97abdbe43aea6d466c"
      unitRef="U001">14571000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_892955cea8ec47b9b8dfb0d4944473fd"
      unitRef="U001">72631000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <tact:ContractWithCustomerRevenueRecognized
      contextRef="c20240101to20241231"
      decimals="-5"
      id="Fact_3e2c6704b26f4179890ebba0f33abd2a"
      unitRef="U001">1100000</tact:ContractWithCustomerRevenueRecognized>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_0c495f37a8194cab9d4cd8868ba7bdc6">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net contract (liabilities) assets consist of the following:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160;&lt;span style="font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unbilled receivables, current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;106&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;145&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Unbilled receivables, non-current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;32&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;120&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Customer pre-payments&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(164&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(155&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue, current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,107&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,079&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue, non-current&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(246&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(209&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net contract (liabilities) assets&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,379&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,178&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_9597b1a7bb274af882d17c4474a7c4ba"
      unitRef="U001">106000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_6a21a81dcac646bc892cc2516a27ae8f"
      unitRef="U001">145000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetNoncurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_48f6e264d055406cb3da4419050606fe"
      unitRef="U001">32000</us-gaap:ContractWithCustomerAssetNetNoncurrent>
    <us-gaap:ContractWithCustomerAssetNetNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_91dc3a429140433d989f2b789fc19047"
      unitRef="U001">120000</us-gaap:ContractWithCustomerAssetNetNoncurrent>
    <tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_9e759f477ad44d2e9ea667bb29494472"
      unitRef="U001">164000</tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent>
    <tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7cda0f6fe1554c3097e98b1dbf8cc616"
      unitRef="U001">155000</tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_ba6a343970c241f2b81fe796b864ed81"
      unitRef="U001">1107000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_c0533264b5304449a98c94404701430c"
      unitRef="U001">1079000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e6df83befa9e4e8aafa9c66fca945972"
      unitRef="U001">246000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_26d5e42544934b3895f89a5498a06db4"
      unitRef="U001">209000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <tact:ContractWithCustomerAssetLiabilityNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_8a7fd768050e4d5dac9999d968d8f387"
      unitRef="U001">-1379000</tact:ContractWithCustomerAssetLiabilityNet>
    <tact:ContractWithCustomerAssetLiabilityNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_3d7dff5498d04ece8f0c0ed353246817"
      unitRef="U001">-1178000</tact:ContractWithCustomerAssetLiabilityNet>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="c20241231"
      decimals="-5"
      id="Fact_dcc4f5ab074b406185ef293d66e40e37"
      unitRef="U001">6300000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member"
      decimals="-5"
      id="Fact_71ad553f38994445baec690199987390"
      unitRef="U001">6000000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member"
      id="Fact_bfda06b3aabf433db4805564dfbed3a5">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="c20241231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20260101Member"
      decimals="-5"
      id="Fact_b600a093c9454b268c878135342feac3"
      unitRef="U001">200000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:ConcentrationRiskCreditRisk
      contextRef="c20240101to20241231"
      id="Text_2b299792be934052a24c455928d01035">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Concentration of credit risk:&lt;/span&gt;&#160; Financial instruments that potentially expose us to
      concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable from customers representing 10% or more of total accounts receivable, net during the years ended December 31, 2024 and 2023 were as
      follows:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;
                &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Light &amp;amp; Wonder Gaming, Inc.&lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International Gaming Technology (&#x201c;IGT&#x201d;) &lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;28&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Sales to customers representing 10% or more of total net sales during the years ended December 31, 2024 and 2023 were as follows:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Light &amp;amp; Wonder Gaming, Inc.&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;11&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;%&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;6&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;%&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;IGT&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock
      contextRef="c20240101to20241231"
      id="Text_89671cac314b4e19b53d7b979330c1ee">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accounts receivable from customers representing 10% or more of total accounts receivable, net during the years ended December 31, 2024 and 2023 were as
      follows:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;
              &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;
                &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Light &amp;amp; Wonder Gaming, Inc.&lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;3&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;International Gaming Technology (&#x201c;IGT&#x201d;) &lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;28&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Sales to customers representing 10% or more of total net sales during the years ended December 31, 2024 and 2023 were as follows:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Light &amp;amp; Wonder Gaming, Inc.&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;11&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;%&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;6&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;%&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;IGT&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;6&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember"
      decimals="2"
      id="Fact_f2f46cbeb66d4420aa93f1ebba485689"
      unitRef="U006">0.15</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember"
      decimals="2"
      id="Fact_31f24c9d4c5d4c71b732227b6b835706"
      unitRef="U006">0.03</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"
      decimals="2"
      id="Fact_9576c19c575742e59fe0a9f24d3e9585"
      unitRef="U006">0.06</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"
      decimals="2"
      id="Fact_c240d5e245e94e41b86d0de94fe5d2f1"
      unitRef="U006">0.28</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember"
      decimals="2"
      id="Fact_5ae99e63b4b34839a0c9bb1c66e5c611"
      unitRef="U006">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_LightWonderGamingIncMember"
      decimals="2"
      id="Fact_d3d7be02eacf478b98e1df33e31010dc"
      unitRef="U006">0.06</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"
      decimals="2"
      id="Fact_159d09084fe24e2692c391b89691cb17"
      unitRef="U006">0.06</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"
      decimals="2"
      id="Fact_836bb975e0534ae684689ead782c24e7"
      unitRef="U006">0.15</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ResearchAndDevelopmentExpensePolicy
      contextRef="c20240101to20241231"
      id="Text_e4c89041ce964f63a3ab9bd4f1a00125">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Engineering, design and product development:&lt;/span&gt; Engineering, design and product
      development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $7.0 million and $9.4 million of research
      and development expenses in 2024 and 2023,
      respectively.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological
      feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in
      determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been
      included in cost of sales over the estimated life of the product.&lt;/div&gt;
</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20240101to20241231"
      decimals="-5"
      id="Fact_760e6ac3131740819741a6e329a14603"
      unitRef="U001">7000000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20230101to20231231"
      decimals="-5"
      id="Fact_d2d8751b06cc4fffa99dde65c2a42d2b"
      unitRef="U001">9400000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:AdvertisingCostsPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_640142caf0ca49c68703632c34f3c261">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Advertising:&lt;/span&gt; Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in
      selling and marketing expense on the accompanying Consolidated Statements of Operations for 2024 and 2023 totaled $1.2 million and $1.7 million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.&lt;/div&gt;
</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="c20240101to20241231"
      decimals="-5"
      id="Fact_42a6374f234346c69e5313ae45d79810"
      unitRef="U001">1200000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="c20230101to20231231"
      decimals="-5"
      id="Fact_78ecb8918ade445380617c0f38509764"
      unitRef="U001">1700000</us-gaap:AdvertisingExpense>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_fec5bc44f8b047c49ba621837b28bd1b">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Income taxes:&lt;/span&gt; The income tax amounts reflected in the accompanying Consolidated Financial Statements
      are accounted for under the liability method in accordance with ASC 740, &#x201c;Income Taxes&#x201d; (&#x201c;ASC 740&#x201d;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial
      statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which
      those temporary differences are expected to be recovered or settled. A valuation allowance is provided for certain deferred tax assets if it is more likely than not that the Company will not realize some portion of the deferred tax assets through
      future operations.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. See Note 11 &#x2013; Income Taxes.&lt;/div&gt;
</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_3d89e4bf6f61475485b51bd70c83d8df">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Foreign currency translation:&lt;/span&gt; The financial position and results of operations of our
      foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been
      translated at the weighted average rate for the period, and shareholders&#x2019; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#x2019; equity as a cumulative
      translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated
      Statements of Operations.&lt;/div&gt;
</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="c20240101to20241231"
      id="Text_b53c3849ef1047b4a88c7708233d8454">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Share-based payments:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&#160;&lt;/span&gt;At December 31, 2024, we have share-based employee compensation plans, which are described more fully in Note 10 - Stock incentive plans. We account for those plans
      under the recognition and measurement principles of ASC 718, &#x201c;Compensation &#x2013; Stock Compensation.&#x201d;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the
      employee&#x2019;s requisite service period.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards. The key assumptions for this valuation method
      include the expected term of the option, our stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the
      determination of compensation expense.&#160; Forfeitures are recognized as they occur.&lt;/div&gt;
</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_c2650dafd7124c12aa8a667df749323e">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;span style="color: rgb(0, 0, 0); font-style: italic; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 700; letter-spacing: normal; text-align: justify; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; display: inline ! important; float: none;"&gt;Net income (loss) per share&lt;/span&gt;:&lt;/span&gt; We report net income or loss per share in accordance with ASC 260, &#x201c;Earnings per Share (EPS).&#x201d; Under this guidance, basic EPS, which excludes dilution, is computed by
      dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock
      were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore,
      these instruments are excluded from the computation of diluted EPS.&#160; See Note 12 - Earnings per share.&lt;/div&gt;
</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="c20240101to20241231"
      id="Text_218f16b46a544c31876c9ab5e1c1bf8b">
&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt;&lt;span style="font-weight: bold; font-style: italic; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Recently issued accounting pronouncements&lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;On November 27, 2023, the FASB issued ASU 2023-07, &lt;span style="font-style: italic;"&gt;Segment Reporting (Topic 280)&lt;/span&gt;.&#160; The
              amendments improve reportable segment disclosures requirements and clarify circumstances in which an entity can disclose multiple segment measures of profit or loss, provide new segment disclosure requirements for entities with a single
              reportable segment and contain other disclosure requirements.&#160; These amendments are effective for fiscal years beginning after December 15, 2023 and for interim periods beginning after December 15, 2024. These segment disclosure requirements
              must be applied retrospectively to all periods presented in the financial statements.&#160; We adopted this standard effective January 1, 2024, and this standard did not have a material impact on the Company&#x2019;s Consolidated Financial Statements. We
              have adopted this standard for our fiscal year 2024 annual financial statements and interim financial statements thereafter and have applied this standard retrospectively for all prior periods presented in the financial statements. See Note 7
              &#x2013; Segment Reporting for further information.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
            &lt;/div&gt;

&lt;div&gt;
            On December 14, 2023, the FASB issued ASU 2023-09, &lt;span style="font-style: italic;"&gt;Income Taxes (Topic 740)&lt;/span&gt;.&#160;&#160; This ASU requires the use of consistent categories and greater disaggregation in tax rate reconciliations and income taxes
            paid disclosures. These amendments are effective for fiscal years beginning after December 15, 2024. These income tax disclosure requirements can be applied either prospectively or retrospectively to all periods presented in the financial
            statements. We are currently evaluating the impact of adopting this standard; however, we do not expect it to have a material impact on our Consolidated Financial Statements.
            &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
              &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In November 2024, the FASB issued ASU 2024-03, Income Statement&#x2014;Reporting Comprehensive Income&#x2014;Expense Disaggregation Disclosures (Subtopic 220-40):
              Disaggregation of Income Statement Expenses. The amendments in this update require footnote disclosures on disaggregated information about specific categories underlying certain income statement expense line items that are considered
              relevant. This includes items such as the purchase of inventory, employee compensation, depreciation, and intangible asset amortization. The amendments in ASU 2024-03 are effective for fiscal years beginning after December 15, 2026. Early
              adoption is permitted. Adoption of this ASU will result in additional disclosure, but will not impact our consolidated financial position, results of operations, or cash flows.&lt;/div&gt;
</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="c20240101to20241231"
      id="Text_45f20a4b3277462ca95d5c449cb1d13e">
&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;3. Inventories&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of inventories are:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;"&gt;Raw materials and purchased component parts&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,413&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,432&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Finished goods&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,748&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,327&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,161&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,759&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_acb339a4c4204e22963c053bc787167a">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of inventories are:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;"&gt;Raw materials and purchased component parts&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,413&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,432&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Finished goods&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,748&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,327&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;16,161&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,759&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves
      contextRef="c20241231"
      decimals="-3"
      id="Fact_4d12cbfbe428407f9c449011b3dc33c8"
      unitRef="U001">8413000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
    <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves
      contextRef="c20231231"
      decimals="-3"
      id="Fact_47e73d3ee2dc4e9a894843105aa08cd6"
      unitRef="U001">8432000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="c20241231"
      decimals="-3"
      id="Fact_c88de9dbd0ec4fd19d1a1d8e34c2fe8c"
      unitRef="U001">7748000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="c20231231"
      decimals="-3"
      id="Fact_d5dc397569624032b807348005b75eef"
      unitRef="U001">9327000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_f353262acd904a98a087d93d770d74c5"
      unitRef="U001">16161000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_e0f7031724884df78c71dc0b14c9bf4c"
      unitRef="U001">17759000</us-gaap:InventoryNet>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="c20240101to20241231"
      id="Text_6697c269e1004f1fa4e0153504dd2c36">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;4. Fixed assets, net&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of fixed assets, net are:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tooling, machinery and equipment&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,828&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,562&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Furniture and office equipment&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,078&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,078&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Computer software and equipment&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,412&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,190&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,895&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,895&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,213&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,725&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;"&gt;Less: Accumulated depreciation and amortization&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(19,468&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(18,646&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,745&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,079&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Construction in-process&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;73&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;342&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,818&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,421&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="c20240101to20241231"
      id="Text_e566dc614a22472a8bcf8ff67893e125">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of fixed assets, net are:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tooling, machinery and equipment&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,828&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,562&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Furniture and office equipment&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,078&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,078&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Computer software and equipment&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,412&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,190&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,895&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,895&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;21,213&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;20,725&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-indent: -9pt; margin-left: 9pt;"&gt;Less: Accumulated depreciation and amortization&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(19,468&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(18,646&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,745&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,079&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Construction in-process&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;73&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;342&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,818&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,421&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"
      decimals="-3"
      id="Fact_1658eef34be247739ef96c6b748fea0e"
      unitRef="U001">7828000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"
      decimals="-3"
      id="Fact_60cd531c2cf9451c915577b371fe1810"
      unitRef="U001">7562000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember"
      decimals="-3"
      id="Fact_d7e48c913c05412bb713145297d3b62a"
      unitRef="U001">2078000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember"
      decimals="-3"
      id="Fact_ceda21c62a5a4a2a978da3dbf533f301"
      unitRef="U001">2078000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember"
      decimals="-3"
      id="Fact_69b394c88ffc43feb99188e4126160ce"
      unitRef="U001">8412000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember"
      decimals="-3"
      id="Fact_3cc0ac654d054887a00aec1d18f75545"
      unitRef="U001">8190000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"
      decimals="-3"
      id="Fact_69237fa9e27d4180a6d59343b7234e78"
      unitRef="U001">2895000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"
      decimals="-3"
      id="Fact_1bcf14d1b3f74e4594e50fd9adc5e52f"
      unitRef="U001">2895000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e42a6bf471284f1fac2a23b46497d6d1"
      unitRef="U001">21213000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20231231"
      decimals="-3"
      id="Fact_d694fa1b6a2a48b59acc63b6f9be3e81"
      unitRef="U001">20725000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20241231"
      decimals="-3"
      id="Fact_fd6968b916c14b18875e8c31efb04857"
      unitRef="U001">19468000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20231231"
      decimals="-3"
      id="Fact_1f4bd701c0ae49e584027b5bafb6beb9"
      unitRef="U001">18646000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20241231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember"
      decimals="-3"
      id="Fact_a0cc552a1db244c2a2b5ad794bf9561a"
      unitRef="U001">1745000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20231231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember"
      decimals="-3"
      id="Fact_7fde3a8e5e5d4d7ab22f687fe76367ae"
      unitRef="U001">2079000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:ConstructionInProgressGross
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e8aa4c8ca66040598ebbbc40a534800b"
      unitRef="U001">73000</us-gaap:ConstructionInProgressGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="c20231231"
      decimals="-3"
      id="Fact_03d228a086034663ac57eaf57f639725"
      unitRef="U001">342000</us-gaap:ConstructionInProgressGross>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_b480489992a242c989fa48cd436b6ef6"
      unitRef="U001">1818000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_71013c23d53f4ddba001b064e9e25a52"
      unitRef="U001">2421000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="c20240101to20241231"
      id="Text_02dae1eef11e490ba4d04083cf52b1cc">
&lt;div&gt;
   &lt;span style="font-weight: bold; background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;5. Intangible assets, net &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left;"&gt;&#160;&lt;/div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross Amount&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accumulated Amortization&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross Amount&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accumulated Amortization&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Purchased technology&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,591&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,591&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,591&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,503&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Patents&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,518&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Amortization expense was $88 thousand and
      $154 thousand in 2024 and
      2023, respectively.&#160; We currently do not anticipate any amortization expense for each of the next five years ending December 31.&lt;br/&gt;
    &lt;/div&gt;
</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_2c9b6e33c54f441a8bdc5b9f421a3723">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left;"&gt;&#160;&lt;/div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross Amount&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accumulated Amortization&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross Amount&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accumulated Amortization&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Purchased technology&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,591&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,591&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,591&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,503&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Patents&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(15&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,606&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,518&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="Fact_d5a093a26cf34be8b62f6c103773dc5f"
      unitRef="U001">1591000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="Fact_d4737d0b20724df785d42ecc7bf15cf0"
      unitRef="U001">1591000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="Fact_b1555b32d7b343c5817584f404e76af2"
      unitRef="U001">1591000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="Fact_a925aa50ef064ada9862b25d3c146c2a"
      unitRef="U001">1503000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"
      decimals="-3"
      id="Fact_0b755512053e418b87253b9d8a25c18b"
      unitRef="U001">15000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20241231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"
      decimals="-3"
      id="Fact_514db014fd4d4f07911e083a1af88392"
      unitRef="U001">15000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"
      decimals="-3"
      id="Fact_1be6bc6d280d47e8be798c8e30b968b4"
      unitRef="U001">15000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20231231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"
      decimals="-3"
      id="Fact_de3c6b5df2534926b6d664f2c03062d7"
      unitRef="U001">15000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20241231"
      decimals="-3"
      id="Fact_8f6fdc78adb846eea43d49d0c471a17d"
      unitRef="U001">1606000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20241231"
      decimals="-3"
      id="Fact_8b20e500e6a545a28071cf90e23e4a40"
      unitRef="U001">1606000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20231231"
      decimals="-3"
      id="Fact_4c15b1f20de34bbdbfd32f862c0df356"
      unitRef="U001">1606000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20231231"
      decimals="-3"
      id="Fact_5cbdb41c2aaa470fa917cb8da1141066"
      unitRef="U001">1518000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_a186f4bf37cf4bb3ae45664f520d05dc"
      unitRef="U001">88000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_dabc4f7bfcc04e7a833c021fca1b0190"
      unitRef="U001">154000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="c20240101to20241231"
      id="Text_52ea3c87be4845ddb1334c5734862f42">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;6. Accrued liabilities&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of accrued liabilities are:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Salaries and compensation related&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,786&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,455&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Taxes&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;725&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;870&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Professional and consulting&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;200&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;161&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;542&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;461&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,253&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,947&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_c9185714c13c4cb4bddb0fa5041bbf3e">
&lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of accrued liabilities are:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Salaries and compensation related&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,786&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,455&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Taxes&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;725&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;870&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Professional and consulting&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;200&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;161&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;542&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;461&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,253&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,947&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_bd5cc5fa04ba4ec3b3571b26f7b2f2ab"
      unitRef="U001">1786000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_3cf1454d66f04df098b3ae37388a6a96"
      unitRef="U001">3455000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:TaxesPayableCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_5431831183324c1c975b4161ec736403"
      unitRef="U001">725000</us-gaap:TaxesPayableCurrent>
    <us-gaap:TaxesPayableCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_64e1e701d6b44e54845003ae2cec4d06"
      unitRef="U001">870000</us-gaap:TaxesPayableCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_fb22d65092bc4e13a57f73400a658b15"
      unitRef="U001">200000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_a52f6eb6cbdd4c59912908c80114a0bc"
      unitRef="U001">161000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e773cd66cc5b493b88b68502b7d39db5"
      unitRef="U001">542000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_99e5a2ae829e4bcb8c8607a193c3f2a9"
      unitRef="U001">461000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="c20241231"
      decimals="-3"
      id="Fact_bd208c31084d449e93815b6d573ba4b3"
      unitRef="U001">3253000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7a0004f5027341f08197eb16ffc985ee"
      unitRef="U001">4947000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="c20240101to20241231"
      id="Text_fa350ddad15549d18f9e3234c22c160c">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;7. Segment reporting&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We apply the provisions of the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) Accounting Standards Codification (&#x201c;ASC&#x201d;) 280, &#x201c;Segment Reporting.&#x201d; We
        view our operations and manage our business as one segment: the design, development and marketing of software-driven technology and
        printing solutions and the sale of printer and terminal related software, services, supplies and spare parts. Factors used to identify TransAct&#x2019;s single operating segment include the similar design, construction and functionality of our products
        and services, the combined research &amp;amp; development team that supports the entire company, a combined assembly, production and supply chain logistics process used to construct our products and services and a similar class of customers within our
        core markets (distributors, resellers, original equipment manufacturers (&#x201c;OEMs&#x201d;) and end users). Other factors used to identify TransAct&#x2019;s single operating segment include the organizational structure of the Company and the financial information
        available for evaluation by the chief operating decision-maker (&#x201c;CODM&#x201d;) in making decisions about how to allocate resources and assess performance. The Company&#x2019;s chief operating decision makers, who are the Company&#x2019;s chief executive officer and the
        Company&#x2019;s chief financial officer, utilize a consolidated approach to assess the performance of and allocate resources to the business.&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We generally use measures of sales, gross margin percentage, net income, earnings before interest, taxes, depreciation and amortization (&#x201c;EBITDA&#x201d;) and
        adjusted EBITDA to make operational and strategic decisions. These financial measures are compared to budgeted and forecasted amounts by the CODMs on a regular basis to measure our progress towards our strategic plans, pursue product enhancements,
        conduct research and development initiatives and make any other necessary overall strategic changes to the business.&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; background-color: rgb(255, 255, 255);"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table provides the operating financial results of our segment:&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="text-align: justify; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;2023&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Revenues&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;43,384&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;72,631&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Cost of materials sold&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;15,268&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;25,990&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Compensation costs&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;18,323&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;20,004&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Professional services&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;3,493&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;4,965&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Occupancy costs&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,477&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,485&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Marketing expenses&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,109&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,715&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;IT expenses&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,255&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,203&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Severance expense&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;75&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,785&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Depreciation and amortization&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,037&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,489&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Other segment expenses&lt;sup&gt;(1)&lt;/sup&gt;&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;4,973&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;8,289&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(3,626&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;5,706&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Interest income&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;469&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;55&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Interest expense&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(322&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(310&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Other (expense) income&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(89&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;452&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Income tax benefit (expense)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(6,295&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(1,155&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Net (loss) income&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(9,863&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;4,748&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;
        &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"&gt;Other Segment expenses included in Segment net income primarily include other cost of goods sold, other administrative costs and engineering costs.&lt;br/&gt;
                &lt;/div&gt;
              &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
      &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
        &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;A reconciliation of net (loss) income to EBITDA and adjusted EBITDA follows:&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;Years Ended December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: justify; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;2023&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Net (loss) income&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(9,863&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;4,748&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Interest (income) expense, net&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(147&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;255&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Income tax expense&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;6,295&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,155&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Depreciation and amortization&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,037&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,489&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;EBITDA&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(2,678&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;7,647&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Share-based compensation&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,157&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;860&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div style="font-size: 8pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Adjusted EBITDA&lt;/span&gt;&lt;sup&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1)&lt;/span&gt;&lt;/sup&gt;&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(1,521&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;8,507&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;
          &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
                  &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Adjusted EBITDA in 2023 includes a $1.5 million severance charge related to the
                      resignation of the Company&#x2019;s former Chief Executive Officer.&lt;/span&gt;&lt;/div&gt;
                &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
          &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Please see Note 14 for net sales and long-lived assets by geographic area.&lt;/div&gt;
</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfOperatingSegments
      contextRef="c20240101to20241231"
      decimals="INF"
      id="Fact_81c2ebe27d5a4237b88b01c29710533f"
      unitRef="U004">1</us-gaap:NumberOfOperatingSegments>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="c20240101to20241231"
      id="Text_98748d83e17440f59cf4d9186bfdc7f7">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following table provides the operating financial results of our segment:&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div style="text-align: justify; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;2023&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Revenues&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;43,384&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;72,631&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Cost of materials sold&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;15,268&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;25,990&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Compensation costs&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;18,323&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;20,004&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Professional services&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;3,493&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;4,965&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Occupancy costs&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,477&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,485&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Marketing expenses&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,109&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,715&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;IT expenses&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,255&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,203&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Severance expense&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;75&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,785&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Depreciation and amortization&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,037&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,489&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Other segment expenses&lt;sup&gt;(1)&lt;/sup&gt;&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;4,973&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;8,289&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(3,626&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;5,706&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Interest income&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;469&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;55&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Interest expense&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(322&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(310&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Other (expense) income&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(89&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;452&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Income tax benefit (expense)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(6,295&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(1,155&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Net (loss) income&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(9,863&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;4,748&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;
        &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
                &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"&gt;Other Segment expenses included in Segment net income primarily include other cost of goods sold, other administrative costs and engineering costs.&lt;br/&gt;
                &lt;/div&gt;
              &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
      &lt;/div&gt;
</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_3b9f8625732843688901eddd3797abf0"
      unitRef="U001">43384000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_bf1e3eed4fae4b9bbf07405443119f40"
      unitRef="U001">72631000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostDirectMaterial
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_bb2da0a8e1eb400e92d88ebd241c04b8"
      unitRef="U001">15268000</us-gaap:CostDirectMaterial>
    <us-gaap:CostDirectMaterial
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_0f1a67ee73254bd282020efc72a95f6e"
      unitRef="U001">25990000</us-gaap:CostDirectMaterial>
    <us-gaap:CompensationExpenseExcludingCostOfGoodAndServiceSold
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_066b83cc06af4e39b480ba2d867549aa"
      unitRef="U001">18323000</us-gaap:CompensationExpenseExcludingCostOfGoodAndServiceSold>
    <us-gaap:CompensationExpenseExcludingCostOfGoodAndServiceSold
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_d9876f2e3697407798d8c3ae1caf3760"
      unitRef="U001">20004000</us-gaap:CompensationExpenseExcludingCostOfGoodAndServiceSold>
    <us-gaap:ProfessionalAndContractServicesExpense
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_4b65388952354ab1baab04482ac4a5e6"
      unitRef="U001">3493000</us-gaap:ProfessionalAndContractServicesExpense>
    <us-gaap:ProfessionalAndContractServicesExpense
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_7fd9a07ebf0e4d93afbda731042d5c9c"
      unitRef="U001">4965000</us-gaap:ProfessionalAndContractServicesExpense>
    <us-gaap:OccupancyNet
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_aab3f7733f2e459ebb06a32a18ff4535"
      unitRef="U001">1477000</us-gaap:OccupancyNet>
    <us-gaap:OccupancyNet
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_a203c6a15b0245bcb71b51a11d71f366"
      unitRef="U001">1485000</us-gaap:OccupancyNet>
    <us-gaap:MarketingExpense
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_57d32f180fcb46baa94abbcb0f36e416"
      unitRef="U001">1109000</us-gaap:MarketingExpense>
    <us-gaap:MarketingExpense
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_81dc422beef947c0ac3a19539f382ce4"
      unitRef="U001">1715000</us-gaap:MarketingExpense>
    <us-gaap:InformationTechnologyAndDataProcessing
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_bba45235479745b4ac8616b551cbd20c"
      unitRef="U001">1255000</us-gaap:InformationTechnologyAndDataProcessing>
    <us-gaap:InformationTechnologyAndDataProcessing
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_732d0f981fb84dfab3a051b1d3dc36a7"
      unitRef="U001">1203000</us-gaap:InformationTechnologyAndDataProcessing>
    <us-gaap:SeveranceCosts1
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_5a392381bfff43998fa227ab5c538748"
      unitRef="U001">75000</us-gaap:SeveranceCosts1>
    <us-gaap:SeveranceCosts1
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_38951db087af45179fc87c3b298466cd"
      unitRef="U001">1785000</us-gaap:SeveranceCosts1>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_21baf38b0bdc4b6f8e48432b6f91821d"
      unitRef="U001">1037000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_eea30887086d4de5a4a4e8a26472a874"
      unitRef="U001">1489000</us-gaap:DepreciationAndAmortization>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_502acbc2d8e74a0a9b7fc4f7f44e1474"
      unitRef="U001">4973000</us-gaap:SegmentReportingOtherItemAmount>
    <us-gaap:SegmentReportingOtherItemAmount
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_0a59ae3f007a480f9e88972683ed59e3"
      unitRef="U001">8289000</us-gaap:SegmentReportingOtherItemAmount>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20240101to20241231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_2f14127eec174f4bb6219218e7bf95bd"
      unitRef="U001">-3626000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20230101to20231231_ConsolidationItemsAxis_OperatingSegmentsMember_StatementBusinessSegmentsAxis_TransactMember"
      decimals="-3"
      id="Fact_a04a3ec3523b43259e363a2e757fec79"
      unitRef="U001">5706000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestIncomeDomesticDeposits
      contextRef="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"
      decimals="-3"
      id="Fact_665d166c350e4c519aff0eda8a395b9b"
      unitRef="U001">469000</us-gaap:InterestIncomeDomesticDeposits>
    <us-gaap:InterestIncomeDomesticDeposits
      contextRef="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"
      decimals="-3"
      id="Fact_d1cf928b33994d68881417a7251d22a2"
      unitRef="U001">55000</us-gaap:InterestIncomeDomesticDeposits>
    <us-gaap:InterestExpenseNonoperating
      contextRef="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"
      decimals="-3"
      id="Fact_660e4013550a4ef5be2eb4d35f5a1055"
      unitRef="U001">322000</us-gaap:InterestExpenseNonoperating>
    <us-gaap:InterestExpenseNonoperating
      contextRef="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"
      decimals="-3"
      id="Fact_2bfef5a375ab467db2df71b0edf0616f"
      unitRef="U001">310000</us-gaap:InterestExpenseNonoperating>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"
      decimals="-3"
      id="Fact_502828c5f1de4f38822dc1674f9caa2e"
      unitRef="U001">-89000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"
      decimals="-3"
      id="Fact_014529c04fb54a39b21adb253df1c35b"
      unitRef="U001">452000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20240101to20241231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"
      decimals="-3"
      id="Fact_2ca8d4f49c76458bbe79d26dcbd6f4a4"
      unitRef="U001">6295000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20230101to20231231_ConsolidationItemsAxis_MaterialReconcilingItemsMember"
      decimals="-3"
      id="Fact_2f466605c68e4c7288861109428d0286"
      unitRef="U001">1155000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_f14fe3253e824bffa5279f9f4a8e55bc"
      unitRef="U001">-9863000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_d9f3e830ac1b4ac18536d23ee4b7fa98"
      unitRef="U001">4748000</us-gaap:NetIncomeLoss>
    <us-gaap:SegmentReportingOtherItemCompositionDescription
      contextRef="c20240101to20241231"
      id="Fact_7f07a0b6d2974c4e9777ed937e8f6961">Other Segment expenses included in Segment net income primarily include other cost of goods sold, other administrative costs and engineering costs.</us-gaap:SegmentReportingOtherItemCompositionDescription>
    <tact:ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_9c582f45ccda49f8a15e4fe34913ed6c">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;A reconciliation of net (loss) income to EBITDA and adjusted EBITDA follows:&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 10pt; text-align: left; color: rgb(0, 0, 0); width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;Years Ended December 31,&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: justify; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;2024&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
              &lt;div style="text-align: center;"&gt;2023&lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Net (loss) income&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(9,863&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;4,748&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Interest (income) expense, net&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(147&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;255&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Income tax expense&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;6,295&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,155&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Depreciation and amortization&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,037&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,489&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;EBITDA&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(2,678&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;7,647&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;Share-based compensation&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;1,157&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;860&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div style="font-size: 8pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman';"&gt;Adjusted EBITDA&lt;/span&gt;&lt;sup&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1)&lt;/span&gt;&lt;/sup&gt;&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;(1,521&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;)&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;$&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
              &lt;div&gt;
                &lt;div&gt;8,507&lt;/div&gt;
              &lt;/div&gt;
            &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman', Times, serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"&gt;
          &lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1)&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
                  &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;Adjusted EBITDA in 2023 includes a $1.5 million severance charge related to the
                      resignation of the Company&#x2019;s former Chief Executive Officer.&lt;/span&gt;&lt;/div&gt;
                &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
          &lt;/div&gt;
</tact:ReconciliationOfNetIncomeLossToEbitdaAndAdjustedEbitdaTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_acaac7f470ee4b3e91116016dfea777d"
      unitRef="U001">-9863000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_4e6a774a19c74c9a963c59bfeb426e1c"
      unitRef="U001">4748000</us-gaap:NetIncomeLoss>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_0953c18d70bf4713a58dda1ad39767b3"
      unitRef="U001">147000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_b881f002d4bc455899a2029943edc5d3"
      unitRef="U001">-255000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_4fa405151c3b44debad13a4f61a90fd6"
      unitRef="U001">6295000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_9451cdb46226498581dc2e18936d32bb"
      unitRef="U001">1155000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_6633ecae3a70462abbc77145172b6db7"
      unitRef="U001">1037000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_51aaa089a4c24714b25950c962a1e659"
      unitRef="U001">1489000</us-gaap:DepreciationAndAmortization>
    <tact:EarningsBeforeInterestTaxesDepreciationAndAmortization
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_a9010b69b25c4a6bbd788c2746463adb"
      unitRef="U001">-2678000</tact:EarningsBeforeInterestTaxesDepreciationAndAmortization>
    <tact:EarningsBeforeInterestTaxesDepreciationAndAmortization
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_8a5460ae505f4f6593798955114bda1a"
      unitRef="U001">7647000</tact:EarningsBeforeInterestTaxesDepreciationAndAmortization>
    <us-gaap:ShareBasedCompensation
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_8ae0bb567cf3432da249bfc68dc23e74"
      unitRef="U001">1157000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_4db8c3c34fc14c219e0c688ea2f32aa3"
      unitRef="U001">860000</us-gaap:ShareBasedCompensation>
    <tact:AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_59fa5feca42d48beae2abad5070c7659"
      unitRef="U001">-1521000</tact:AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization>
    <tact:AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_0461940fd93f4a23acf26fcf7baf9ef1"
      unitRef="U001">8507000</tact:AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization>
    <us-gaap:SeveranceCosts1
      contextRef="c20230101to20231231_TitleOfIndividualAxis_ChiefExecutiveOfficerMember"
      decimals="-5"
      id="Fact_d8232b15bbde4188b8c249f273ab692c"
      unitRef="U001">1500000</us-gaap:SeveranceCosts1>
    <us-gaap:CompensationAndEmployeeBenefitPlansTextBlock
      contextRef="c20240101to20241231"
      id="Text_4be85790c86e46c8a04f2516e69d3c63">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;8. Retirement savings plan&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We maintain a 401(k) plan under which all full-time employees are eligible to participate at the beginning of the month immediately following their date
      of hire.&#160; We match employees&#x2019; contributions at a rate of 50% of employees&#x2019; contributions up to the first 6% of the employees&#x2019; compensation contributed to the 401(k) plan.&#160; Our matching contributions, net of applied forfeitures, were $364 thousand and $230 thousand in 2024 and 2023, respectively.&lt;/div&gt;
</us-gaap:CompensationAndEmployeeBenefitPlansTextBlock>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="c20240101to20241231"
      decimals="2"
      id="Fact_92a6a8b994544462b2610019de78684a"
      unitRef="U006">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="c20240101to20241231"
      decimals="2"
      id="Fact_8ff14f088d7547318b5fbfcc0b090d77"
      unitRef="U006">0.06</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_cb34102547fe4627973972fe899e2a0f"
      unitRef="U001">364000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_c8d4246c182541598452fde9b82b205a"
      unitRef="U001">230000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="c20240101to20241231"
      id="Text_a429fc8dfa4349bfb0627a1706bd73fa">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;9. Borrowings&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Credit Facility&lt;/div&gt;

&lt;div&gt;&lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;On March 13, 2020, we entered into the
          Loan and Security Agreement (the &#x201c;Loan Agreement&#x201d;) governing a credit facility (the &#x201c;Siena Credit Facility&#x201d;) with Siena Lending Group LLC (the &#x201c;Lender&#x201d;).&#160; The Siena Credit Facility provides for a revolving credit line of up to $10.0 million and was originally scheduled to expire on March 13, 2023, prior to being extended, as discussed below. Borrowings under the Siena Credit Facility bear a floating rate of interest equal to the greatest of (i) the prime rate plus 1.75%, (ii) the federal funds rate plus 2.25%, and (iii) 6.50%. The total deferred financing costs related to expenses incurred to complete the Siena Credit Facility were $245 thousand which were reported as &#x201c;Other current assets&#x201d; in current assets and &#x201c;Other assets&#x201d; in non-current assets in the Consolidated Balance
          Sheets. We also pay a fee of 0.50% on unused borrowings under the Siena Credit Facility. Borrowings under the Siena Credit Facility
          are secured by a lien on substantially all the assets of the Company. Borrowings under the Siena Credit Facility are subject to a borrowing base based on 85% of eligible accounts receivable plus the lesser of (a) $5.0 million and
          (b) 50% of eligible raw material and 60%
          of finished goods inventory.&#160; &lt;br/&gt;
        &lt;/span&gt; &lt;/div&gt;

&lt;div style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div&gt; &lt;span style="background-color: rgb(255, 255, 255); font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;The Siena Credit Facility imposes a
          financial covenant on the Company and restricts, among other things, our ability to incur additional indebtedness and create other liens. On July 21, 2021, the Company entered into an amendment (&#x201c;Siena Credit Facility Amendment No. 1&#x201d;) to the
          Loan Agreement. Siena Credit Facility Amendment No. 1 changed the financial covenant under the Siena Credit Facility from a minimum EBITDA covenant to an excess availability covenant requiring that the Company maintain excess availability of at
          least $750 thousand under the Siena Credit Facility, tested as of the end of each calendar month, beginning with the calendar month
          ended July 31, 2021. From July 31, 2021 through December 31, 2024, we remained in compliance with our excess availability covenant. &lt;br/&gt;
        &lt;/span&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;On July 19, 2022, the Company and the Lender entered into Amendment No. 2 (&#x201c;Siena Credit Facility Amendment No. 2&#x201d;) to the Loan Agreement as amended
      by Siena Credit Facility Amendment No. 1. Also on July 19, 2022, the Company and the Lender entered into an Amended and Restated Fee Letter (the &#x201c;Amended Fee Letter&#x201d;) in connection with Siena Credit Facility Amendment No. 2. Siena Credit Facility
      Amendment No. 2 did not modify the aggregate amount of the revolving commitment or the interest rate applicable to the loans. Among other changes, Siena Credit Facility Amendment No. 2 extended the maturity date from March 13, 2023 to March 13, 2025.
      In addition, the Amended Fee Letter required the Company to maintain outstanding borrowings of at least $2.25 million in principal amount
      or, during any period during which the Lender had control of the Company&#x2019;s deposit account in accordance with the Loan Agreement, as amended by Siena Credit Facility Amendment No. 2, to pay interest on at least $2.25 million in principal amount of outstanding borrowings, whether or not such amount of loans was actually outstanding.&lt;br/&gt;
      &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On May 1, 2023, the Company and the Lender agreed to a letter amendment (Amendment No. 3) to the Loan Agreement. Prior to such amendment, Section 7.1(m)
      of the Loan Agreement required that any successor to the Company&#x2019;s former Chief Executive Officer be reasonably acceptable to the Lender. This amendment confirmed that Mr. John Dillon, the Company&#x2019;s current Chief Executive Officer, is an acceptable
      successor, and applied the same requirement to any future successor to Mr. Dillon as Chief Executive Officer.&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;On November 20, 2024, the Company and the Lender entered into Amendment No. 4 (&#x201c;Siena Credit Facility Amendment No. 4&#x201d;) to the Loan Agreement.&#160; The
      changes to the Loan Agreement provided for in Siena Credit Facility Amendment No. 4 include, among other things, the extension of the maturity date from March 13, 2025 to March 31, 2027. Also on November 20, 2024, the Company and the Lender entered
      into a Second Amended and Restated Fee Letter (the &#x201c;Second Amended Fee Letter&#x201d;) in connection with Siena Credit Facility Amendment No. 4. The Second Amended Fee Letter increases the minimum borrowing amount from $2.25 million to $3.0 million, such that the
      Company is required to either maintain outstanding borrowings of at least $3.0 million in principal amount, or during any period during
      which the Lender has control of the Company&#x2019;s deposit account in accordance with the Loan Agreement, as amended by Siena Credit Facility Amendment No. 4, to pay interest on at least $3.0 million principal amount of loans, whether or not such amount of loans is actually outstanding. The Second Amended Fee Letter also extends the dates before which a prepayment and
      termination of the Loan Agreement requires the Company to pay to the Lender an early payment/termination premium, providing for (i) a two percent
      premium for prepayment on or prior to March 31, 2025, (ii) a one percent premium for prepayment from April 1, 2025 through March 31, 2026,
      and no premium for prepayment thereafter. &lt;br/&gt;
      &lt;br/&gt;
      As of December 31, 2024 and 2023, we had $3.0 million and $2.3 million, respectively, of outstanding borrowings under the Siena Credit Facility at interest rates of 9.25% and 10.25%, respectively.&#160; We had $3.2 million of net borrowing capacity available under the Siena Credit Facility at December 31, 2024.&lt;br/&gt;
    &lt;/div&gt;
</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_546aa593334a4dbab867a240f64a8aaa"
      unitRef="U001">10000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_PrimeRateMember"
      decimals="4"
      id="Fact_fe7e322c06534de1b73fd9a039cdc32d"
      unitRef="U006">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_FederalFundsEffectiveSwapRateMember"
      decimals="4"
      id="Fact_b36237d39f4d4fa7844446340e17d326"
      unitRef="U006">0.0225</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="4"
      id="Fact_10e3d16bdc864086b5b84338828f5804"
      unitRef="U006">0.065</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DeferredFinanceCostsGross
      contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-3"
      id="Fact_7e50a967d40c42f7a1661f0c8e187faf"
      unitRef="U001">245000</us-gaap:DeferredFinanceCostsGross>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="4"
      id="Fact_8d8e80274324480aa3afcf6a6e00cd99"
      unitRef="U006">0.005</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <tact:DebtInstrumentFinancialCovenantEligibleAccountsReceivable
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="2"
      id="Fact_1e945d7b733e437f9ff564495962e241"
      unitRef="U006">0.85</tact:DebtInstrumentFinancialCovenantEligibleAccountsReceivable>
    <tact:DebtInstrumentFinancialCovenantEligibleInventory
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_d05247e9d0b0461b97340deb6d59d26d"
      unitRef="U001">5000000</tact:DebtInstrumentFinancialCovenantEligibleInventory>
    <tact:DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="2"
      id="Fact_b7b5ef9ea9d84eac8deaa03848945f1d"
      unitRef="U006">0.50</tact:DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage>
    <tact:DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="2"
      id="Fact_cf973adb9499418fa58f99637b01f10d"
      unitRef="U006">0.60</tact:DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="c20210721_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_RangeAxis_MinimumMember"
      decimals="-3"
      id="Fact_25aed6fea1fc4a708a121c3e259a5462"
      unitRef="U001">750000</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained
      contextRef="c20241119_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-4"
      id="Fact_9b3b6627cb5c4caca254a60c69dc9c98"
      unitRef="U001">2250000</tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained>
    <tact:DebtInstrumentPrincipalAmountOnWhichInterestIsPaid
      contextRef="c20241119_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-4"
      id="Fact_9fae9a2790334ec1936867eb49d2cf78"
      unitRef="U001">2250000</tact:DebtInstrumentPrincipalAmountOnWhichInterestIsPaid>
    <tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained
      contextRef="c20241119_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-4"
      id="Fact_37cfb4c68d66409dadb9350ffbb8fdc7"
      unitRef="U001">2250000</tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained>
    <tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained
      contextRef="c20241120_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_b366a6548d484b95a33f4bccfa2fc280"
      unitRef="U001">3000000</tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained>
    <tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained
      contextRef="c20241120_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_32478cbc8cb543da8d8026dde09ad407"
      unitRef="U001">3000000</tact:DebtInstrumentMinimumOutstandingBorrowingsToBeMaintained>
    <tact:DebtInstrumentPrincipalAmountOnWhichInterestIsPaid
      contextRef="c20241120_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_305352cdef924d17b57be72ba4bb6046"
      unitRef="U001">3000000</tact:DebtInstrumentPrincipalAmountOnWhichInterestIsPaid>
    <tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="INF"
      id="Fact_ff56c03e1c554a89be3bdc18887d1643"
      unitRef="U006">0.02</tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodOne>
    <tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="INF"
      id="Fact_56eb616638c04c0a8ce2c7a5daf06e7f"
      unitRef="U006">0.01</tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentPeriodTwo>
    <tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter
      contextRef="c20240101to20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="INF"
      id="Fact_81a90081f611463dad15e17c2bd61640"
      unitRef="U006">0</tact:DebtInstrumentEarlyPaymentTerminationPremiumForPrepaymentThereafter>
    <us-gaap:SecuredDebt
      contextRef="c20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_c3901d414afc4d889fd51b495e48318c"
      unitRef="U001">3000000</us-gaap:SecuredDebt>
    <us-gaap:SecuredDebt
      contextRef="c20231231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_172b50c68a3a4240913e25ad10dd8622"
      unitRef="U001">2300000</us-gaap:SecuredDebt>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="c20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="4"
      id="Fact_c24aa4fd8d2e4b2f809a6b4a91f4e295"
      unitRef="U006">0.0925</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="c20231231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="4"
      id="Fact_24f765b935f94036bd2d1a87e02cb3da"
      unitRef="U006">0.1025</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="c20241231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_3e55239a06c64771b69521252b2a6876"
      unitRef="U001">3200000</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="c20240101to20241231"
      id="Text_da76e37629e04642b6231ec47d5ba588">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;10. Stock incentive plans&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;"&gt;Stock incentive plans&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-style: italic;"&gt;.&lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#160; We currently have two
        stock incentive plans: the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, which provide for awards to executives, key employees, directors and consultants.&#160; The plans generally provide for awards in the form of: (i) incentive stock
        options, (ii) non-qualified stock options, (iii) restricted stock, (iv) restricted stock units (which may include performance-based vesting), (v) stock appreciation rights or (vi) limited stock appreciation rights.&#160; Awards granted under these plans
        have exercise prices equal to 100% of the fair market value of the common stock at the date of grant.&#160; Awards granted have a ten-year term and generally vest over a two-year
        to four-year period, unless automatically accelerated for certain defined events.&#160; As of May 2014, no new awards may be made under the
        2005 Equity Incentive Plan.&#160; Under our 2014 Equity Incentive Plan, as amended in May 2023, we are authorized to grant awards of up to 2.9
        million shares of TransAct common stock.&#160; At December 31, 2024, 655,672 shares of common stock remained available for issuance under the 2014 Equity Incentive Plan.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Under the assumptions indicated below, the weighted-average per share fair value of stock option grants for 2024 and 2023 was $3.98 and $4.16, respectively.&#160; We also
      issued restricted stock units for certain executives and directors that vest over a specified period of time, and in some instances require achieving certain performance metrics.&#160; The weighted-average per share fair value of these restricted stock
      units was $5.81 and $7.21 in
      2024 and 2023,
      respectively. The per share fair value of restricted stock units is the trading value of the stock on the date of the grant.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2024 and 2023 and a discussion of our
      methodology for developing each of the assumptions used in the valuation model:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Years ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;Expected option term (in years)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;6.1&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;7.0&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;Expected volatility&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;57.7&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;55.6&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;Risk-free interest rate&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;4.3&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;4.2&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;Dividend yield&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;0.0&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;0.0&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;"&gt;Expected Option Term&lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; - This is the weighted average period of time over which the options granted are expected to remain outstanding giving consideration to our historical exercise patterns.&#160; Options granted
        have a maximum term of ten years and an increase in the expected term will increase compensation expense.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;"&gt;Expected Volatility&lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &#x2013; The stock volatility for each grant is measured using the weighted average of historical daily price changes of our common stock over the most recent period approximately equal to the expected option term of
        the grant.&#160; An increase in the expected volatility factor will increase compensation expense.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;"&gt;Risk-Free Interest Rate&lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; - This is the U.S. Treasury rate in effect at the time of grant having a term approximately equal to the expected term of the option.&#160; An increase in the risk-free interest rate will
        increase compensation expense.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; font-weight: bold; font-style: italic;"&gt;Dividend Yield&lt;/span&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &#x2013;The dividend yield is calculated by dividing the annual dividend declared per common share by the weighted average market value of our common stock on the date of grant. An increase in the dividend yield will
        decrease compensation expense.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We recorded $1.2 and $0.9 million of share-based compensation expense for 2024
      and 2023, respectively, included primarily in general and administrative expense in our Consolidated Statements of Operations.&#160; We also
      recorded income tax benefits of $0.3 million in 2024 and $0.2 million in&#160;2023, related to such share-based compensation.&#160; At December 31,
      2024, these benefits are recorded as a deferred tax asset in the Consolidated Balance Sheets.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, as amended, is summarized below:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Stock Options&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Restricted Stock Units&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Number of Shares&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt; Average Price*&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Number of Units&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Average Price**&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0);"&gt;Outstanding at December 31, 2023&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;1,314,475&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8.82&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;184,536&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;7.76&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);"&gt;Granted&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;179,700&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;6.80&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;267,024&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;5.81&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);"&gt;Exercised&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(74,995&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;7.41&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);"&gt;Forfeited&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(7,750&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;7.11&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);"&gt;Expired&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(109,312&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;10.71&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0);"&gt;Outstanding at December 31, 2024&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;1,377,113&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8.41&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;376,565&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;6.44&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;*&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;weighted average exercise price per share&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;**&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;weighted average grant stock price per share&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;
    &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2024:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/span&gt;&lt;/td&gt;

    &lt;td colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Equity Awards Vested and Expected to Vest&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Equity Awards That Are Exercisable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Awards&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Average Price*&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Aggregate &lt;/div&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Intrinsic &lt;/div&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Remaining Term**&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Awards&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Average Price*&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Aggregate &lt;/div&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Intrinsic &lt;/div&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Remaining Term**&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock Options&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,377,113&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;8.41&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;973,963&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;8.96&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.2&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 20%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Restricted stock units&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;376,565&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,540&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;*&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;weighted average exercise price per share&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;**&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;weighted-average contractual remaining term in
              years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shares that are issued upon exercise of employee stock awards are newly issued shares and not issued from treasury stock.&#160; As of December 31, 2024, unrecognized compensation cost related to non-vested equity awards granted under our stock incentive plans is approximately $2.7 million, which is expected to be recognized over a weighted average period of 2.7 years.&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The total fair value of awards vested was $0.9
      million and $1.3 million during the years ended December 31, 2024 and 2023, respectively.&#160; The total intrinsic value (which
      is the amount by which the stock price exceeded the exercise price on the date of exercise) of stock options exercised during the years ended December 31, 2024
      and 2023 was zero and $3 thousand, respectively, and cash received from option exercises was zero in both 2024 and 2023. Zero and 1,875 stock options were exercised during the year ended December 31, 2024
      and 2023, respectively. We recorded zero
      realized tax provision in 2024 and 2023
      from equity-based awards, related to options exercised.&lt;/div&gt;
</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans
      contextRef="c20240101to20241231"
      decimals="INF"
      id="Fact_3688807ef7414e29802db0211d35e3c6"
      unitRef="U007">2</tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans>
    <tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_49f430f190eb439fb90e2c090c72871a"
      unitRef="U006">1</tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Fact_2570427c81fe41488e383e0b3a9352cd">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MinimumMember"
      id="Fact_0db0071e27344978a46a5ee7c3579edc">P2Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MaximumMember"
      id="Fact_a94bcb7fd5bc40b1b0365b91ee824fc9">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c20241231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="-5"
      id="Fact_c4642ad47bd542f381e9a4fdf0f34f56"
      unitRef="U002">2900000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c20241231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_2053c108733043bfa7f32fb2d6c14bd8"
      unitRef="U002">655672</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_b922d7d1b6aa4cd9baa53e762dcedcb1"
      unitRef="U003">3.98</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_ba65f86a2c1f48078bb345dfe0fb574a"
      unitRef="U003">4.16</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_1cd326659c134727a3b8df75794d2806"
      unitRef="U003">5.81</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_59cecb4194ab4fffbab4fe55cc5cafdf"
      unitRef="U003">7.21</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_69bdf2cf012d43adbf999330b27be273">
&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;  &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2024 and 2023 and a discussion of our
      methodology for developing each of the assumptions used in the valuation model:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Years ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;Expected option term (in years)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;6.1&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;7.0&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;Expected volatility&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;57.7&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;55.6&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;Risk-free interest rate&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;4.3&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;4.2&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;Dividend yield&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;0.0&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;0.0&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;%&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member"
      id="Fact_687e78c01e4543809ffb7f37d8ab08e0">P6Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member"
      id="Fact_d6744edfaddc46839f67827df7a5d528">P7Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_5d2a4dd35a8b47f7af32c07eea7f055a"
      unitRef="U006">0.577</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_421c716f61f64b0694e4f82983064083"
      unitRef="U006">0.556</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_d138d3cea5974569bf848f247d7af481"
      unitRef="U006">0.043</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_75218615b1364cd5927f84f650b1b041"
      unitRef="U006">0.042</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20240101to20241231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_6a7b4fc91008430ea1ba798652bbf358"
      unitRef="U006">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20230101to20231231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_17704d9377a04af9b8a4ea15e6f66f93"
      unitRef="U006">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"
      id="Fact_80db50693f874a31ad6302a0e7771e4b">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20240101to20241231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"
      decimals="-5"
      id="Fact_7348a698cb7c4c47be5e7a5b82c93947"
      unitRef="U001">1200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20230101to20231231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"
      decimals="-5"
      id="Fact_31aa16f30a2042b281f84c20e1c6ade2"
      unitRef="U001">900000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="c20240101to20241231"
      decimals="-5"
      id="Fact_cc84785e11424776bdc9345eafed4a16"
      unitRef="U001">300000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="c20230101to20231231"
      decimals="-5"
      id="Fact_53b959e20edc4df9a874d81e00492d2a"
      unitRef="U001">200000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_629fd486a6bb45a4a9c5750f6f4cd8a8">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, as amended, is summarized below:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&lt;br/&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Stock Options&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Restricted Stock Units&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Number of Shares&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt; Average Price*&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Number of Units&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0);"&gt;Average Price**&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0);"&gt;Outstanding at December 31, 2023&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;1,314,475&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8.82&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;184,536&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;7.76&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);"&gt;Granted&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;179,700&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;6.80&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;267,024&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;5.81&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);"&gt;Exercised&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(74,995&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;7.41&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);"&gt;Forfeited&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(7,750&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;7.11&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: rgb(0, 0, 0);"&gt;Expired&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;(109,312&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;10.71&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: rgb(204, 238, 255); font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: rgb(0, 0, 0);"&gt;Outstanding at December 31, 2024&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;1,377,113&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;8.41&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;376,565&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: rgb(0, 0, 0);"&gt;6.44&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;*&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;weighted average exercise price per share&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;**&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;weighted average grant stock price per share&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_a3b1e8e9ed4a465d985df513b9d9f818"
      unitRef="U002">1314475</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_b3db755b52a54323b23037bcd2bd07f2"
      unitRef="U003">8.82</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_e165a6d9c50347efaf6c52c42962644d"
      unitRef="U002">184536</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20231231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_581017b20eb1438cb1a6673b1a2cad30"
      unitRef="U003">7.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_bbd8ee52a40d47258d4dd4e85d7e8ce5"
      unitRef="U002">179700</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_37f9e617256946a08e5fb8778c091f57"
      unitRef="U003">6.8</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_c899d100653e4432b43e8eccd1663388"
      unitRef="U002">267024</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_11c1cde366ba4c0f934c1b4137718d0b"
      unitRef="U003">5.81</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="INF"
      id="Fact_ccbf9c1c44074456956f1727d36a0690"
      unitRef="U002">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_b348fca154ba44d4b941466d559c1e04"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_472fc97c49604c799a05ebd3148bf306"
      unitRef="U002">74995</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised>
    <tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_e08d5b677b7041a983641c8cba1f54b8"
      unitRef="U003">7.41</tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_75ee12e441614a86bf15f0a5d6da4b54"
      unitRef="U002">7750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_64011356dfb94e76a412184b86da6b6d"
      unitRef="U003">7.11</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="INF"
      id="Fact_905271282a2b4764a111664bb7a156b7"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_1a350868eedf479e825e885b866ad436"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_c0b419679d4743b48619f20b7c094a3b"
      unitRef="U002">109312</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_3fb53e09c1724244888528d1d0ec8b77"
      unitRef="U003">10.71</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="INF"
      id="Fact_202deb8398384b649e1513404777f969"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations>
    <tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_8d70da87f96f48cca2f3009259a3fbf3"
      unitRef="U003">0</tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_aa1fe91353144d9c92cda2fecec53897"
      unitRef="U002">1377113</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_1928e9b6c64a42fba5f539b786fd81d0"
      unitRef="U003">8.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_0b14b6ffa8314245bfa5cbd96603921a"
      unitRef="U002">376565</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_8c509495d7b0448eb8d857ea64ac5982"
      unitRef="U003">6.44</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_b4ce87dfa5d941c482369c20af06926f">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2024:&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
            &lt;/span&gt;&lt;/td&gt;

    &lt;td colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Equity Awards Vested and Expected to Vest&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="15" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Equity Awards That Are Exercisable&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; font-family: 'Times New Roman'; font-size: 10pt; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Awards&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Average Price*&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Aggregate &lt;/div&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Intrinsic &lt;/div&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Remaining Term**&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Awards&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Average Price*&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Aggregate &lt;/div&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Intrinsic &lt;/div&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Value&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Remaining Term**&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock Options&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,377,113&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;8.41&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;973,963&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;8.96&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.2&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 20%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Restricted stock units&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;376,565&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,540&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.1&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;br/&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;br/&gt;
      &lt;/span&gt; &lt;/div&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;*&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;weighted average exercise price per share&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman'; font-size: 10pt; width: 100%; text-align: left; color: #000000; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="width: 18pt; vertical-align: top; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;**&lt;/td&gt;

    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;
            &lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;weighted-average contractual remaining term in
              years&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_4f56920a4a974d129f23f89b86076219"
      unitRef="U002">1377113</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_1d2c57d04e57448380172b161b182ba6"
      unitRef="U003">8.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="-3"
      id="Fact_e9ac8e0df8d144e480f84a4ceae7b938"
      unitRef="U001">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      id="Fact_405c8e86ab1b4e299f867ea0322c0700">P4Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_386aac54c13048f79f7b309e7273f511"
      unitRef="U002">973963</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_7d0fbb8fba164e83b0ba0879dc808e46"
      unitRef="U003">8.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="c20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="-3"
      id="Fact_249030739a984843818c29613e0b408f"
      unitRef="U001">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      id="Fact_5b50415d1fad4424be3cfa35ffa9f759">P2Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_03d365a2d5754633874b1fe10428aa75"
      unitRef="U002">376565</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
      contextRef="c20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_7c5b53a1c8534156a0305a063082151f"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="-3"
      id="Fact_19d40c23d1ba45cdad548198d701385a"
      unitRef="U001">1540000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="c20240101to20241231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      id="Fact_8d32d3a74ea340de87f2908c5ec778b2">P2Y1M6D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
      contextRef="c20241231"
      decimals="-5"
      id="Fact_a67639763bf6470fbf84bb3f21f02931"
      unitRef="U001">2700000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="c20240101to20241231"
      id="Fact_134e4ffee0c24a1fab719f67eec1010e">P2Y8M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="c20240101to20241231"
      decimals="-5"
      id="Fact_e3308d52a31848c89dd573b525e36cf8"
      unitRef="U001">900000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="c20230101to20231231"
      decimals="-5"
      id="Fact_5cebe7098bd647afa050f6acca4dae88"
      unitRef="U001">1300000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_e84f6fd400ed412caeba05c77f123640"
      unitRef="U001">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_3f719c4b0a0e42acbd49fd624a9abbfb"
      unitRef="U001">3000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_fb61c9620b744f49be0e6a8f9220dd2e"
      unitRef="U001">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_928439d00e404efda4a0bc2b11ef7e75"
      unitRef="U001">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20240101to20241231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="INF"
      id="Fact_168b25a87c0c4a53aab33b408272947f"
      unitRef="U002">-0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20230101to20231231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_18797389d8104253885f5371e3e58374"
      unitRef="U002">1875</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_6b462a0285eb4f49b8669a5155dae927"
      unitRef="U001">0</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_12c33fbe255b4267b0454cb3a47c8962"
      unitRef="U001">0</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="c20240101to20241231"
      id="Text_762da0a85f5b417aa5d8f3d477394e38">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;11. Income taxes&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of the income tax expense are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
          &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Current:&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Federal&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(154&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;State&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;37&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;51&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;108&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;85&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(9&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;135&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred:&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Federal&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,991&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;825&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;State&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;293&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;132&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;20&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;63&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,304&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,020&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income tax expense&lt;br/&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,295&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,155&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"&gt; &lt;br/&gt;
    &lt;/span&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"&gt;Our effective tax rates were &lt;/span&gt;(176.4%)&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"&gt; and &lt;/span&gt;19.6%&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"&gt; for &lt;/span&gt;2024&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"&gt; and &lt;/span&gt;2023&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: rgb(0, 0, 0);"&gt;, respectively.&lt;/span&gt; Our 2024 tax rate was impacted by an income tax charge of $7.3 million related to the write down of our U.S. net deferred income tax asset as more fully described below.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;At December 31, 2024, we have $276 thousand of federal net operating loss carryforwards which can be carried over indefinitely, $135 thousand of state net operating loss carryforwards which expire in various years,&#160; $903
      thousand of R&amp;amp;D credit carryforwards which can be carried forward for 20 years, and no state tax credit carryforwards.&#160; All of these items have a full valuation allowance against them as of December 31, 2024.&#160; Foreign income before taxes was $79 thousand and $322 thousand in&#160; 2024 and 2023, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our
    deferred tax assets and liabilities were comprised of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
          &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets:&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Federal net operating losses&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;276&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign net operating losses&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;802&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;733&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;State net operating losses&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;135&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;84&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued severance&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;20&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;165&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Capitalized R&amp;amp;D expenses&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,708&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,127&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory reserves&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,047&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;896&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;31&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Warranty reserve&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;29&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;24&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock compensation expense&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;853&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;790&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other accrued compensation&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;165&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;404&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;R&amp;amp;D credit carryforward&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;903&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;695&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="margin-left: 9pt; text-indent: 0pt;"&gt;Other Assets&lt;br/&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;379&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;360&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross deferred tax assets&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,324&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,309&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Valuation allowance&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(8,103&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(719&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -18pt; margin-left: 45pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net deferred tax assets&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;221&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,590&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax liabilities:&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Depreciation and amortization&lt;br/&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;179&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;237&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;42&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;49&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net deferred tax liabilities&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;221&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;286&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total net deferred tax assets&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,304&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2024 and 2023, we had $8.1 million and $719 thousand, respectively,
    of valuation allowance against our deferred income tax assets. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;719&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;656&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Additions charged to income tax provision&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,384&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;63&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,103&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;719&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Valuation allowances are recorded to reduce deferred tax assets when it is more likely than not (greater than 50%) that a tax benefit will not be realized.&#160; In
      evaluating the need for a valuation allowance, management considers all potential sources of taxable income, including income available in carryback periods, future reversals of taxable temporary differences, projections of taxable income, income
      from tax planning strategies, as well as all available positive and negative evidence.&#160; Positive evidence includes factors such as a history of profitable operations, projections of future profitability within the carryforward period, including any
      potential tax planning strategies.&#160; Negative evidence includes items such as cumulative losses and projections of future losses.&#160; Upon changes in facts and circumstances, management may conclude that deferred tax assets for which no valuation
      allowance is currently recorded may not be realized, resulting in a charge to establish a valuation allowance.&#160; Existing valuation allowances are re-examined under the same standards of positive and negative evidence. If it is determined that it is
      more likely than not that a deferred tax asset will be realized, the appropriate amount of the valuation allowance, if any, is released.&#160; Deferred tax assets and liabilities are also re-measured to reflect changes in underlying tax rates due to law
      changes and the granting and lapse of tax holidays.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;In 2024, TransAct recognized a $7.3 million discrete
      income tax charge for a valuation allowance on the full value of the net deferred tax assets in the United States. After weighing all available positive and negative evidence, as described above, management determined that it was no longer more
      likely than not that TransAct will realize the tax benefit of these deferred tax assets. This was mainly driven by&#160; a cumulative taxable loss experienced over the previous three fiscal years (2022 through 2024) combined with a near term outlook of
      future taxable losses.&#160; The need for this valuation allowance will be assessed on a continuous basis in future periods and, as a result, a portion, or all of the allowance, may be reversed based on changes in facts and circumstances.&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Federal statutory rate&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;R&amp;amp;D credit&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8.8&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5.9&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;Foreign-derived intangible income deduction &lt;br/&gt;
        &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#x2013;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;(1.7&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock award excess tax benefit&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.7&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.4&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;State income taxes, net of federal income taxes&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.5&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Business meals and entertainment&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.4&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.3&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Executive compensation limitation&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.6&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Uncertain tax positions&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.2&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.5&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock option cancellations&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.6&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Change in valuation allowance&lt;br/&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(206.9&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.3&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effective tax rate&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(176.4&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;19.6&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We had $203 and $197 thousand of total gross unrecognized tax benefits at December 31, 2024 and 2023, respectively that, if recognized, would favorably affect the
    effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the
    gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;197&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;142&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tax positions taken during the current period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;31&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;83&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;Reductions for tax positions in prior years &lt;br/&gt;
        &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;(25&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#x2013;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Lapse of statute of limitations&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#x2013;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(28&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;203&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;197&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
  &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We recognize interest and penalties related to uncertain tax positions in the income tax provision.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We are subject to U.S. federal income tax as well as income tax of certain state and foreign jurisdictions.&#160; We have substantially concluded all U.S.
    federal income tax, state and local, and foreign tax matters through 2019.&#160; However, our federal tax returns for the years 2021 through 2024 remain open to examination. Various state and foreign tax jurisdiction tax years remain open to examination as
    well, though we believe that any additional assessment would be immaterial to the Consolidated Financial Statements.&lt;/div&gt;
</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_4c3ec231e79241219f4c528df41dbdac">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The components of the income tax expense are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
          &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Current:&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Federal&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(154&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;State&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;37&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;51&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;108&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;85&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(9&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;135&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred:&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Federal&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,991&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;825&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;State&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;293&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;132&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;20&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;63&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,304&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,020&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Income tax expense&lt;br/&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,295&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,155&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_58f59428ae794a78b5d7be6dad6e6309"
      unitRef="U001">-154000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_b9cc23d441a8421daea99821a44ebbbe"
      unitRef="U001">-1000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_891d5dcf91e24f3f8d45dc9c9d8efa33"
      unitRef="U001">37000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_cb205870e3734690a2d8eb47151cf0a0"
      unitRef="U001">51000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_9ab2585449b748b4b8e9c5576f4cf47c"
      unitRef="U001">108000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_3d07b993055f4c089850c67a14217313"
      unitRef="U001">85000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_265b460420b0487596636969512af2bf"
      unitRef="U001">-9000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_eff4977fb9cf4ace87489df9c57e3caf"
      unitRef="U001">135000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_b1e7fabfc9984d6b8de684bceb628db9"
      unitRef="U001">5991000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_e642edc5eb4e4cb49fd017aaf26dfab6"
      unitRef="U001">825000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_a307d73353864ec1bf0b215532b3491c"
      unitRef="U001">293000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_e510a877bdb44aaba269d51ad3fb9a22"
      unitRef="U001">132000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_664fd4092d764ae9b0d27cd6709ba795"
      unitRef="U001">20000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_0bbf0956eada4e8d89a0137308fb878b"
      unitRef="U001">63000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_f96548c02ebd4f5887b7f59c6a1c2d12"
      unitRef="U001">6304000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_1dd908547fd948ceba8b8bb9ef4a95e3"
      unitRef="U001">1020000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_e49fd8c94c8c4df6a58a97cb639adbbe"
      unitRef="U001">6295000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_97f88a803f934d698ed612b2a3388013"
      unitRef="U001">1155000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_9c5337e103e942e98cc399b510f32f94"
      unitRef="U006">-1.764</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_74fa5995f225484986da8d991c5a5c3e"
      unitRef="U006">0.196</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceDeferredTaxAssetUnitedStatesMember"
      decimals="-5"
      id="Fact_c4788959ca1b493aa8d69dff07d920e4"
      unitRef="U001">7300000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <tact:OperatingLossCarryforwardsNotSubjectToExpiration
      contextRef="c20241231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      decimals="-3"
      id="Fact_a587fe7fd9ef4b7b9fafa581475feea8"
      unitRef="U001">276000</tact:OperatingLossCarryforwardsNotSubjectToExpiration>
    <tact:OperatingLossCarryforwardsSubjectToExpiration
      contextRef="c20241231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-3"
      id="Fact_bf17da6a6cd24eb291a0421449f75652"
      unitRef="U001">135000</tact:OperatingLossCarryforwardsSubjectToExpiration>
    <tact:TaxCreditCarryforwardAmountSubjectToExpiration
      contextRef="c20241231_TaxCreditCarryforwardAxis_ResearchMember"
      decimals="-3"
      id="Fact_7b7485d306f6444b89904347aee6b07c"
      unitRef="U001">903000</tact:TaxCreditCarryforwardAmountSubjectToExpiration>
    <tact:TaxCreditCarryforwardExpirationPeriod
      contextRef="c20240101to20241231_TaxCreditCarryforwardAxis_ResearchMember"
      id="Fact_6e2d5dad2d3449478dc2176a6058635a">P20Y</tact:TaxCreditCarryforwardExpirationPeriod>
    <tact:TaxCreditCarryforwardAmountSubjectToExpiration
      contextRef="c20241231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-6"
      id="Fact_8130ae56076840d7a0f2e967c5bd8129"
      unitRef="U001">0</tact:TaxCreditCarryforwardAmountSubjectToExpiration>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_156305ab372b4fa29846a10513ec85f3"
      unitRef="U001">79000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_bcbe2bc4829a4f2695c95662fd33175f"
      unitRef="U001">322000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_623cf2a1daa64270a86c67eb451df3ce">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our
    deferred tax assets and liabilities were comprised of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" rowspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
          &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax assets:&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Federal net operating losses&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;276&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Foreign net operating losses&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;802&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;733&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;State net operating losses&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;135&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;84&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Accrued severance&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;20&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;165&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Capitalized R&amp;amp;D expenses&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,708&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,127&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Inventory reserves&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,047&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;896&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred revenue&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;31&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Warranty reserve&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;29&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;24&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock compensation expense&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;853&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;790&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other accrued compensation&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;165&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;404&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;R&amp;amp;D credit carryforward&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;903&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;695&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="margin-left: 9pt; text-indent: 0pt;"&gt;Other Assets&lt;br/&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;379&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;360&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross deferred tax assets&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,324&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,309&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 27pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Valuation allowance&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(8,103&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(719&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -18pt; margin-left: 45pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net deferred tax assets&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;221&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,590&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Deferred tax liabilities:&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Depreciation and amortization&lt;br/&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;179&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;237&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;42&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;49&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 36pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net deferred tax liabilities&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;221&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;286&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total net deferred tax assets&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,304&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="c20241231"
      decimals="-3"
      id="Fact_0dbf86e73a0b4fecbdb1c20cc2787882"
      unitRef="U001">276000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="c20231231"
      decimals="-3"
      id="Fact_19d902eb6bb8453f918fd4a0f47bb790"
      unitRef="U001">0</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="c20241231"
      decimals="-3"
      id="Fact_4b357fc2fc774f50a1895f10583fe099"
      unitRef="U001">802000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="c20231231"
      decimals="-3"
      id="Fact_85d62178cc2945f3b00355ea694ac1b3"
      unitRef="U001">733000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e06499e053e94e35860cfd198808fb9c"
      unitRef="U001">135000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
      contextRef="c20231231"
      decimals="-3"
      id="Fact_8c7cee07c4574bbea3bbdfa45acac230"
      unitRef="U001">84000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments
      contextRef="c20241231"
      decimals="-3"
      id="Fact_883948f6005344dfb9a499bbdb56849a"
      unitRef="U001">20000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments
      contextRef="c20231231"
      decimals="-3"
      id="Fact_3bb70356272540dba4ae9db60d56591e"
      unitRef="U001">165000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsSeverancePayments>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment
      contextRef="c20241231"
      decimals="-3"
      id="Fact_7c4a3e6a745b4a4c8f576200a8484132"
      unitRef="U001">3708000</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment
      contextRef="c20231231"
      decimals="-3"
      id="Fact_28cb2ee8fdad4d019c095bb2c163326e"
      unitRef="U001">3127000</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e3bb4e65edc647f78fd648a483d6ccf9"
      unitRef="U001">1047000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="c20231231"
      decimals="-3"
      id="Fact_650a7dbdaeb7454686a15578c1074a9b"
      unitRef="U001">896000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsDeferredIncome
      contextRef="c20241231"
      decimals="-3"
      id="Fact_ff6d5f4029ef4d9bba2302fa1cad6172"
      unitRef="U001">7000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsDeferredIncome
      contextRef="c20231231"
      decimals="-3"
      id="Fact_01bdf134e7f140db9666f0c877cbb7ee"
      unitRef="U001">31000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves
      contextRef="c20241231"
      decimals="-3"
      id="Fact_a9a9650eea97483d96f5aeca06a05650"
      unitRef="U001">29000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves
      contextRef="c20231231"
      decimals="-3"
      id="Fact_08502ce4b6bb4355a14cde33be2537b4"
      unitRef="U001">24000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="c20241231"
      decimals="-3"
      id="Fact_106736ac5678413d9764f0c217d08bdf"
      unitRef="U001">853000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="c20231231"
      decimals="-3"
      id="Fact_2c1d494a838146ff86e8c3c30ee2a6cd"
      unitRef="U001">790000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
      contextRef="c20241231"
      decimals="-3"
      id="Fact_257a6d4c97cc41f88fd3d6d1f5ef0ac1"
      unitRef="U001">165000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
      contextRef="c20231231"
      decimals="-3"
      id="Fact_0a82e453e0d842fbbe3312c7fc696dc8"
      unitRef="U001">404000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="c20241231"
      decimals="-3"
      id="Fact_3c31cf5da6494cf3afe7d0981102cf23"
      unitRef="U001">903000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="c20231231"
      decimals="-3"
      id="Fact_e5c319d038824db2a9a8ebe59da53550"
      unitRef="U001">695000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="c20241231"
      decimals="-3"
      id="Fact_9c4bf0438d6149efb767129e5e9ee791"
      unitRef="U001">379000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="c20231231"
      decimals="-3"
      id="Fact_8f43a01fe9d64b7ebf352eebb43cd214"
      unitRef="U001">360000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="c20241231"
      decimals="-3"
      id="Fact_33a344f00e794330a949669c870966d5"
      unitRef="U001">8324000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="c20231231"
      decimals="-3"
      id="Fact_1b3f138515a74dbf809a1d81f8cf9e74"
      unitRef="U001">7309000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="c20241231"
      decimals="-3"
      id="Fact_7f3262eaf2eb41b39310fdad89f888d4"
      unitRef="U001">8103000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="c20231231"
      decimals="-3"
      id="Fact_0b9bdcb563e24087ae198bed9454b8b3"
      unitRef="U001">719000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_cd2ca16d21b54488b03e6c5f211b86f4"
      unitRef="U001">221000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_b65f27a5b5f04789a0b5eae9f4e30617"
      unitRef="U001">6590000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="c20241231"
      decimals="-3"
      id="Fact_04bdf3b9df0d400196349d578b9aeb52"
      unitRef="U001">179000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="c20231231"
      decimals="-3"
      id="Fact_b59a3c19ce69486f97654db5172b1a30"
      unitRef="U001">237000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="c20241231"
      decimals="-3"
      id="Fact_0140ec0eda5d4813af8d17da00dab7c8"
      unitRef="U001">42000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="c20231231"
      decimals="-3"
      id="Fact_fceeee05f6e445f1890dd023fed85ad0"
      unitRef="U001">49000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilities
      contextRef="c20241231"
      decimals="-3"
      id="Fact_de4e4761667745ee97f6948a2b4b69d4"
      unitRef="U001">221000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="c20231231"
      decimals="-3"
      id="Fact_6b83f02d662f49498ac8547e08da49b7"
      unitRef="U001">286000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_20c9fcc1d4794c3bb0f3c5a1a00d328a"
      unitRef="U001">0</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_ca5a4079805443e79c2c02d232d1c183"
      unitRef="U001">6304000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:SummaryOfValuationAllowanceTextBlock
      contextRef="c20240101to20241231"
      id="Text_ee4413c3e26a485394a68ad2b5355c39">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;As of December 31, 2024 and 2023, we had $8.1 million and $719 thousand, respectively,
    of valuation allowance against our deferred income tax assets. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="7" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="3" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;719&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;656&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Additions charged to income tax provision&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7,384&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;63&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,103&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;719&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:SummaryOfValuationAllowanceTextBlock>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-5"
      id="Fact_57469c086c3b4ee0bd344e86deeecd57"
      unitRef="U001">8100000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="Fact_9a525c029e774efc9d77feacaed26c5d"
      unitRef="U001">719000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="Fact_647f6482a55a438ebffb660a75ec3ac6"
      unitRef="U001">719000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="Fact_4801d8aea175440c9c0a6943d139c555"
      unitRef="U001">656000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="Fact_5faf4befeb55450ebc3cf34f33e4869e"
      unitRef="U001">7384000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="c20230101to20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="Fact_82ab3c3144134329aa3b4d79fd0e7a4c"
      unitRef="U001">63000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="Fact_6a015c4af0ed495c97e4787357d026c6"
      unitRef="U001">8103000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20231231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="Fact_4ecfa99d5b2345c1bf3307f0da94c15e"
      unitRef="U001">719000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="c20240101to20241231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceDeferredTaxAssetUnitedStatesMember"
      decimals="-5"
      id="Fact_143571e25df14f1aa50ccb4aa2116f3b"
      unitRef="U001">7300000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_f967806729524cd0984e96a28243bfde">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant: normal; text-transform: none;"&gt;Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Federal statutory rate&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;21.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;R&amp;amp;D credit&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8.8&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(5.9&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;Foreign-derived intangible income deduction &lt;br/&gt;
        &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#x2013;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;(1.7&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock award excess tax benefit&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.7&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.4&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;State income taxes, net of federal income taxes&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2.5&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Business meals and entertainment&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.4&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.3&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Executive compensation limitation&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.6&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Uncertain tax positions&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.2&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.5&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Stock option cancellations&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(2.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.6&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Change in valuation allowance&lt;br/&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(206.9&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Other&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3.0&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.3&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Effective tax rate&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(176.4&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;19.6&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_bf85e39fbf854afdb86b0a4319412ca1"
      unitRef="U006">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_53d95a641df844d4bccfcd578d274136"
      unitRef="U006">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_7f8451f43b2e4f3da15a86fca3fd4f3e"
      unitRef="U006">-0.088</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_61ac3d6e1ef843ef9a3efae9bee44565"
      unitRef="U006">0.059</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationFdiiPercent
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_31798e72a283466588b77f0c2935347a"
      unitRef="U006">0</us-gaap:EffectiveIncomeTaxRateReconciliationFdiiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationFdiiPercent
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_ecbc61d7be544f41bbbcef0cd926c2bf"
      unitRef="U006">0.017</us-gaap:EffectiveIncomeTaxRateReconciliationFdiiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_e68f5a06e9ac4fcca11aabeefc552acb"
      unitRef="U006">-0.007</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_ad117841420242238637981d0ec886fd"
      unitRef="U006">0.004</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_2e55ecffab9f44cf8590dfdb408558d6"
      unitRef="U006">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_b29c76ae06b446b7b9dfacdc20c3b951"
      unitRef="U006">0.025</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_a1825723a1f040e48442afeea964b7b6"
      unitRef="U006">-0.004</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_f75c18694412491986ab171323ff7fbb"
      unitRef="U006">0.003</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment>
    <tact:EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_9d7c1b08def749668ce1dab2092bad23"
      unitRef="U006">0</tact:EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent>
    <tact:EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_fd084b7853c54365944a2fe80523b8eb"
      unitRef="U006">0.006</tact:EffectiveIncomeTaxRateReconciliationExecutiveCompensationLimitationPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_23c89f232a5844679fc27002d86166e1"
      unitRef="U006">-0.002</us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_f8228dd60a98443eaf3f0a5f3a40e955"
      unitRef="U006">0.005</us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_93ba68e753324931803e0737ded2f9f8"
      unitRef="U006">-0.02</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_8fd5f855d489445b863a969122a544f3"
      unitRef="U006">0.006</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_3b389dab5a294dd790fe8dd002b4cae6"
      unitRef="U006">-2.069</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_cc9d11fe340c42eaa320f79820413942"
      unitRef="U006">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_2570933ad97b4bb8b660ae5a9299316a"
      unitRef="U006">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_c4b5f62f13d3426ca42f2d59ccf8fb81"
      unitRef="U006">0.003</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20240101to20241231"
      decimals="3"
      id="Fact_a92eccd29e354e41b42b9e51bb4a5ec4"
      unitRef="U006">-1.764</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20230101to20231231"
      decimals="3"
      id="Fact_c5cc501b2761428ea6dcf34211e05b8e"
      unitRef="U006">0.196</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_915844539b6c4236aaf36565f09643d0">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;We had $203 and $197 thousand of total gross unrecognized tax benefits at December 31, 2024 and 2023, respectively that, if recognized, would favorably affect the
    effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the
    gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
  &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31,&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;197&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;142&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Tax positions taken during the current period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;31&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;83&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td rowspan="1" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;Reductions for tax positions in prior years &lt;br/&gt;
        &lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;(25&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;)&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#x2013;&lt;/td&gt;

    &lt;td colspan="1" rowspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Lapse of statute of limitations&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#x2013;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(28&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;203&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
          &lt;div&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;197&lt;/div&gt;
          &lt;/div&gt;
        &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20241231"
      decimals="-3"
      id="Fact_df69bc164e9f4fd69f1f5a9e3383747d"
      unitRef="U001">203000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20231231"
      decimals="-3"
      id="Fact_0ec02a24d0a240db940ea6dcca6fc9d5"
      unitRef="U001">197000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20231231"
      decimals="-3"
      id="Fact_7a3da92e81f7434da9147c25e0b49bf9"
      unitRef="U001">197000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20221231"
      decimals="-3"
      id="Fact_5f0725923a0f4baeb37954f0b3158043"
      unitRef="U001">142000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_7340cf09f61349499d9dc6aac52d2a3c"
      unitRef="U001">31000</us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease>
    <us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_dc3a70cc2bcd403a8b234da006c90447"
      unitRef="U001">83000</us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_18b3e1b659384b138a3444701b8bbb73"
      unitRef="U001">25000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_1533bb1f34d642f591be386307a1d7ae"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_2b2262b6469e4793b2b75b44092a59c6"
      unitRef="U001">0</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_2b107d0d2ce743da938df1e41813b4a5"
      unitRef="U001">28000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e4b08e2b407e486ca23f7dc61f4b93cb"
      unitRef="U001">203000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20231231"
      decimals="-3"
      id="Fact_317a62c0802e447796e544235562ad12"
      unitRef="U001">197000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="c20240101to20241231"
      id="Text_e8296c5992864d07bfb0bb75feff0aeb">
&lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;12. Earnings per share&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Earnings per share was computed as follows (in thousands, except per share amounts):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net (loss) income&lt;br/&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(9,863&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,748&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shares:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic:&#160; Weighted average common shares outstanding&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,997&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,951&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;70&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted:&#160; Weighted average common and common equivalent shares outstanding&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,997&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,021&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net (loss) income per common share:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.99&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.48&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.99&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.47&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, restricted
      stock units and performance stock awards, when the average market price of the common stock is lower than the exercise price of the related stock award during the period.&#160; These outstanding stock awards are not included in the computation of diluted
      earnings per share because the effect would be anti-dilutive.&#160; Furthermore, in periods when a net loss is reported, such as in 2024, basic and diluted net loss per common share are calculated using the same method.&#160; Anti-dilutive option awards
      excluded from the computation of earnings per dilutive share were 1.4 million and 1.1 million at December 31, 2024 and 2023, respectively. Anti-dilutive restricted stock awards excluded from the computation of earnings per dilutive share were 0.3 million and zero at December 31, 2024
      and 2023, respectively. Anti-dilutive performance stock awards excluded from the computation of earnings per dilutive share were 0.1
      million and zero at December 31, 2024 and 2023, respectively.&lt;/div&gt;
</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_9c1248e04f7c415cad93855f7da486ad">
&lt;div style="text-align: justify; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt;"&gt;Earnings per share was computed as follows (in thousands, except per share amounts):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net (loss) income&lt;br/&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(9,863&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,748&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Shares:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic:&#160; Weighted average common shares outstanding&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,997&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,951&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;70&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted:&#160; Weighted average common and common equivalent shares outstanding&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,997&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,021&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net (loss) income per common share:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.99&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.48&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.99&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.47&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_396a1c28d04a4ec7a6fa808cbb2dfffd"
      unitRef="U001">-9863000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_2e629e349bc747c1b4ee964b8613b6d5"
      unitRef="U001">4748000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_22819547b02242619c3cba3e2c2a1175"
      unitRef="U002">9997000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_8978c79845f24dd7bbb22ab0951c1f7f"
      unitRef="U002">9951000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_5efb44cfd4ee4f00ae7d4fe557f27a36"
      unitRef="U002">0</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_9a9e54f08def4d2ba295d091170a5f1d"
      unitRef="U002">70000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_bbf4167982974831b2964b512cf02a38"
      unitRef="U002">9997000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_23c02d1858d648ada62c50544547b362"
      unitRef="U002">10021000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20240101to20241231"
      decimals="2"
      id="Fact_99c8a1eee344436da81bbaf18a18e5e5"
      unitRef="U003">-0.99</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20230101to20231231"
      decimals="2"
      id="Fact_2dcc25334a4845ab90929ab45ab78094"
      unitRef="U003">0.48</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20240101to20241231"
      decimals="2"
      id="Fact_d9979d441c4447639c155eadec89caf9"
      unitRef="U003">-0.99</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20230101to20231231"
      decimals="2"
      id="Fact_aed33045e2ef42b79bf1a101c0f99f62"
      unitRef="U003">0.47</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_EmployeeStockOptionMember"
      decimals="-5"
      id="Fact_b9b6c9396361482d9af0f5507f9b11fc"
      unitRef="U002">1400000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_EmployeeStockOptionMember"
      decimals="-5"
      id="Fact_4370655e79bc438d8f84963773b3e961"
      unitRef="U002">1100000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_RestrictedStockMember"
      decimals="-5"
      id="Fact_4a1e4b3a1d5149e3943b3ea4db4e23d2"
      unitRef="U002">300000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_RestrictedStockMember"
      decimals="-6"
      id="Fact_332d939875ea4822be179a82fc37f5e6"
      unitRef="U002">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20240101to20241231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_PerformanceSharesMember"
      decimals="-5"
      id="Fact_1064a536c7344c4999adb21450392704"
      unitRef="U002">100000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20230101to20231231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_PerformanceSharesMember"
      decimals="-6"
      id="Fact_8c020321e6d848ccadcd1c0e3c008543"
      unitRef="U002">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:TreasuryStockTextBlock
      contextRef="c20240101to20241231"
      id="Text_afa424e1d2f745359b3dc0cccf9a8c42">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;13. Stock repurchase program&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;We use the cost method to account for treasury stock purchases, under which the price paid for the stock is charged to the treasury stock account.&#160;
      Repurchases of our common stock are accounted for as of the settlement date.&#160; During 2024 and 2023, we did not repurchase any shares of our common stock.&#160;
      From January 1, 2005 through December 31, 2019, we repurchased a total of 4,044,842 shares of common stock for $32.1 million, at an average price of $7.94
      per share.&lt;/div&gt;
</us-gaap:TreasuryStockTextBlock>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20230101to20231231"
      decimals="INF"
      id="Fact_f194b08f33404d8988d2a2f0eec9c1b8"
      unitRef="U002">0</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20240101to20241231"
      decimals="INF"
      id="Fact_73df738d49e549cbb09b70847f272469"
      unitRef="U002">0</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20050101to20191231"
      decimals="0"
      id="Fact_105587780b5442aaa621897ce7e11bba"
      unitRef="U002">4044842</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20050101to20191231"
      decimals="-5"
      id="Fact_95b9a69e182849fa8045153726bdc756"
      unitRef="U001">32100000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:TreasuryStockAcquiredAverageCostPerShare
      contextRef="c20050101to20191231"
      decimals="2"
      id="Fact_7f88cc0640d84c38848efe0ec89d362c"
      unitRef="U003">7.94</us-gaap:TreasuryStockAcquiredAverageCostPerShare>
    <tact:GeographicAreaInformationTextBlock
      contextRef="c20240101to20241231"
      id="Text_939bef70c0d64540892a844d8725a94a">
&lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;14. Geographic area information&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the
      location of the customer and asset.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net sales:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,485&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;58,060&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,899&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,571&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;43,384&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;72,631&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Fixed assets, net:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;831&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;945&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;987&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,476&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,818&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,421&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt; &lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Sales to international customers were 23%
      and 20% of total sales in 2024
      and 2023, respectively.&#160; Sales to Europe represented 55% and 64%, sales to the Pacific Rim (which includes Australia and Asia) represented 34% and 29%, and sales to Canada
      represented 10% and 4% of
      total international sales in 2024 and 2023,
      respectively.&#160; International long-lived assets consist of net fixed assets located at our foreign subsidiary in the UK, as well as our contract manufacturer in Thailand.&lt;/div&gt;
</tact:GeographicAreaInformationTextBlock>
    <us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_4a17fe339a4c458782cf20512587781c">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the
      location of the customer and asset.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net sales:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;33,485&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;58,060&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;9,899&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;14,571&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;43,384&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;72,631&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Fixed assets, net:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;United States&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;831&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;945&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;International&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;987&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,476&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,818&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2,421&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_6c14eca1222c4a3cbe99f3421cfc40e8"
      unitRef="U001">33485000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_e35d3d9733fd48b6bc33f8931e59e478"
      unitRef="U001">58060000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_77acacb894554e99abd4b4500072458b"
      unitRef="U001">9899000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_451282ca64504e35aed69b8b2b25c378"
      unitRef="U001">14571000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_e771d5db06f44f01bf899dc30ece1a19"
      unitRef="U001">43384000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_1fa211f11d2643acb353d07e2d5e6d7f"
      unitRef="U001">72631000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_11053a0288a34ac1bed03ea7820fc42c"
      unitRef="U001">831000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_2de7998d105e4ed6973d76114c927329"
      unitRef="U001">945000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20241231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_450d3562af7f43dab7e21893c62d145c"
      unitRef="U001">987000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20231231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_cb0288d98b474ff4a6ea029d7512a3d1"
      unitRef="U001">1476000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20241231"
      decimals="-3"
      id="Fact_059103176e7c45d5a90c41b0b08ab295"
      unitRef="U001">1818000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20231231"
      decimals="-3"
      id="Fact_eaf60dc04f2e4ac5a296cb1ce5cc4095"
      unitRef="U001">2421000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember"
      decimals="2"
      id="Fact_eef988d24c334d7a9b10f22dc3b155ec"
      unitRef="U006">0.23</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember"
      decimals="2"
      id="Fact_8a7e9d8745ae41e480cf975d79212aa7"
      unitRef="U006">0.20</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember"
      decimals="2"
      id="Fact_2359de3dd3bb4f94b72e3c54ca08d67d"
      unitRef="U006">0.55</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember"
      decimals="2"
      id="Fact_cf22b1e39890428b88f8cd194a71ae23"
      unitRef="U006">0.64</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember"
      decimals="2"
      id="Fact_884dc442bb8448a087f9e5d0ee90b7ba"
      unitRef="U006">0.34</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember"
      decimals="2"
      id="Fact_a7be34216961406ea18c5c7ba5b41aad"
      unitRef="U006">0.29</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20240101to20241231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA"
      decimals="2"
      id="Fact_3996b33490734fe4896ba46fcf69a9fc"
      unitRef="U006">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20230101to20231231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA"
      decimals="2"
      id="Fact_5f67358592894d0db38418dd66e24eb6"
      unitRef="U006">0.04</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="c20240101to20241231"
      id="Text_5a7dc2c2b1cb4061a483a480c2de1e99">
&lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;15. Leases&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"&gt;Operating lease expense was $&lt;/span&gt;1.0 million and $1.1&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"&gt; million for the years ended December 31, &lt;/span&gt;2024&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"&gt; and &lt;/span&gt;2023&lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"&gt;,
        respectively, and is reported as &lt;/span&gt;&#x201c;Cost of sales,&#x201d; &#x201c;Engineering, design and product development expense,&#x201d; &#x201c;Selling and marketing expense,&#x201d; and &#x201c;General and administrative expense&#x201d; in the Consolidated Statements of Operations.&#160; &lt;span style="font-size: 10pt; font-family: 'Times New Roman'; color: #000000;"&gt;Operating costs include short-term lease costs.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Operating cash outflows from leases&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,022&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,013&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following summarizes additional information related to our leases:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average remaining lease term (in years)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.2&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.7&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average discount rate&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7.7&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.4&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The maturity of the Company&#x2019;s operating lease liabilities are as follows (in thousands):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31, 2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2025&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,014&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2026&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;237&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total undiscounted lease payments&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,251&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less imputed interest&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;65&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total lease liabilities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,186&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:OperatingLeaseExpense
      contextRef="c20240101to20241231"
      decimals="-5"
      id="Fact_26f2402856e4401fb3a0d23849e0b79a"
      unitRef="U001">1000000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="c20230101to20231231"
      decimals="-5"
      id="Fact_e3648ab59474476784d790b3a8f07640"
      unitRef="U001">1100000</us-gaap:OperatingLeaseExpense>
    <tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_4eab533f0844421ebd1a6dd3b33f2c58">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Operating cash outflows from leases&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,022&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,013&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock>
    <us-gaap:OperatingLeasePayments
      contextRef="c20240101to20241231"
      decimals="-3"
      id="Fact_e19a81f5d6d746ccbfe3ebd0347c74a1"
      unitRef="U001">1022000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="c20230101to20231231"
      decimals="-3"
      id="Fact_d463600d0099409583b9b11218363b1d"
      unitRef="U001">1013000</us-gaap:OperatingLeasePayments>
    <tact:LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_5468d94eba274b49957e07039b061b03">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The following summarizes additional information related to our leases:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average remaining lease term (in years)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.2&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1.7&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Weighted average discount rate&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;7.7&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4.4&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;%&lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</tact:LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="c20241231"
      id="Fact_0fbaaabbac7d41188cbe9359e45afaaa">P1Y2M12D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="c20231231"
      id="Fact_bc1c90158a484098b20d4b8e7d47178a">P1Y8M12D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="c20241231"
      decimals="3"
      id="Fact_8d9c66514b0f490bbcf638bb7475edc8"
      unitRef="U006">0.077</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="c20231231"
      decimals="3"
      id="Fact_7d60aafa33cf4c8a9de2743632fabd55"
      unitRef="U006">0.044</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_5506cde2ef1549d78d0c07d838263a31">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The maturity of the Company&#x2019;s operating lease liabilities are as follows (in thousands):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt; &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31, 2024&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2025&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,014&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2026&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;237&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total undiscounted lease payments&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,251&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Less imputed interest&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 2px solid rgb(0, 0, 0);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;65&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Total lease liabilities&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255);" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);" valign="bottom"&gt;
            &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;1,186&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: rgb(204, 238, 255); white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="c20241231"
      decimals="-3"
      id="Fact_c377d875e9a84c70a0c00de7f39cc250"
      unitRef="U001">1014000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="c20241231"
      decimals="-3"
      id="Fact_e1574a66dd664ca4979253d17b8d6194"
      unitRef="U001">237000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="c20241231"
      decimals="-3"
      id="Fact_afccc858ff034b5f9eaffb23d8861ca9"
      unitRef="U001">1251000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="c20241231"
      decimals="-3"
      id="Fact_49320404b00d4eeca17a6b9c2966ec39"
      unitRef="U001">65000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="c20241231"
      decimals="-3"
      id="Fact_3f691b1c92da40c788446ae862ce5dc0"
      unitRef="U001">1186000</us-gaap:OperatingLeaseLiability>
    <us-gaap:QuarterlyFinancialInformationTextBlock
      contextRef="c20240101to20241231"
      id="Text_e58080c8e8e74a9f8fdb44ee77736a6a">
&lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;16. Quarterly results of operations (unaudited)&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Our quarterly results of operations for 2024
      and 2023 are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Quarter Ended&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands, except per share amounts)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;March 31&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;June 30&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;September 30&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net sales&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,687&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;11,599&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,867&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,231&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,624&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,110&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,227&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,521&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net loss&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,036&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(319&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(551&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(7,957&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net loss per common share:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.10&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.03&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.06&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.79&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.10&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.03&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.06&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.79&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net sales&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;22,270&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,906&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,190&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,265&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,255&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,858&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,916&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,371&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income (loss)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,139&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;765&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;906&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(62&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income (loss) per common share:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.32&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.08&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.09&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.01&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.31&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.08&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.09&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.01&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:QuarterlyFinancialInformationTextBlock>
    <us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock
      contextRef="c20240101to20241231"
      id="Text_955f2bb3e42647958280ecce3bf167e6">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Our quarterly results of operations for 2024
      and 2023 are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman'; font-size: 10pt; text-align: left; color: #000000; width: 100%; border-spacing: 0;"&gt;


  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Quarter Ended&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;
            &lt;div style="text-align: left; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic;"&gt;(In thousands, except per share amounts)&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;March 31&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;June 30&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;September 30&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px; white-space: nowrap;" valign="bottom"&gt;
            &lt;div style="text-align: center; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;December 31&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2024:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net sales&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,687&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;11,599&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,867&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,231&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,624&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,110&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;5,227&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;4,521&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net loss&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(1,036&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(319&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(551&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(7,957&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net loss per common share:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.10&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.03&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.06&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.79&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.10&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.03&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.06&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.79&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;2023:&lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net sales&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;22,270&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;19,906&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;17,190&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;$&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;13,265&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;12,255&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;10,858&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;8,916&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;6,371&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income (loss)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;3,139&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;765&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;906&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(62&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 9pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Net income (loss) per common share:&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Basic&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.32&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.08&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.09&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.01&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;

  &lt;tr&gt;

    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="text-align: left; margin-left: 18pt; color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;Diluted&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.31&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.08&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;0.09&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: right; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;

    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;(0.01&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;
            &lt;div&gt;
              &lt;div style="color: #000000; font-family: 'Times New Roman'; font-size: 10pt;"&gt;)&lt;/div&gt;
            &lt;/div&gt;
          &lt;/td&gt;

  &lt;/tr&gt;


&lt;/table&gt;
</us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_aca121163c8e46bb854fa2a50c60e454"
      unitRef="U001">10687000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240401to20240630"
      decimals="-3"
      id="Fact_f7d8228eff494977b7675ee10bf1bf97"
      unitRef="U001">11599000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240701to20240930"
      decimals="-3"
      id="Fact_20571d50d54b4240b00afdb4849513c2"
      unitRef="U001">10867000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20241001to20241231"
      decimals="-3"
      id="Fact_bdd0fa7780104c508c87559d36efa2dd"
      unitRef="U001">10231000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:GrossProfit
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_c145c882e5ce4a5399be4b7b543d4725"
      unitRef="U001">5624000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20240401to20240630"
      decimals="-3"
      id="Fact_57d4d11bdea94fff872ec8c069cdc06d"
      unitRef="U001">6110000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20240701to20240930"
      decimals="-3"
      id="Fact_90a32589b1e4498c9a8cc4800eebee36"
      unitRef="U001">5227000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20241001to20241231"
      decimals="-3"
      id="Fact_7a573194dd4040dba1fb159b5249d9f3"
      unitRef="U001">4521000</us-gaap:GrossProfit>
    <us-gaap:NetIncomeLoss
      contextRef="c20240101to20240331"
      decimals="-3"
      id="Fact_7383a12d8101403e8b103957f9874e6a"
      unitRef="U001">-1036000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240401to20240630"
      decimals="-3"
      id="Fact_3407de2db40f4ac18031932e5eff6804"
      unitRef="U001">-319000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20240701to20240930"
      decimals="-3"
      id="Fact_9cc780925dac45b4bef805d22acbd15e"
      unitRef="U001">-551000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20241001to20241231"
      decimals="-3"
      id="Fact_ef368020eff14f089bc0144332194f83"
      unitRef="U001">-7957000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20240101to20240331"
      decimals="2"
      id="Fact_b53df643e5df4dbea83f5b9492a9f9bc"
      unitRef="U003">-0.1</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20240401to20240630"
      decimals="2"
      id="Fact_7f4bf6f16eda454080f1fd2b43c2cf24"
      unitRef="U003">-0.03</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20240701to20240930"
      decimals="2"
      id="Fact_82f1d59759cd4c4ebb0a4e6221ad5f8b"
      unitRef="U003">-0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20241001to20241231"
      decimals="2"
      id="Fact_8000ded3f41b46f8b4ce75516aaa0647"
      unitRef="U003">-0.79</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20240101to20240331"
      decimals="2"
      id="Fact_225a0575e00e48c48c590d27c951bac0"
      unitRef="U003">-0.1</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20240401to20240630"
      decimals="2"
      id="Fact_69b36f54b1224f6ab46621c777115233"
      unitRef="U003">-0.03</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20240701to20240930"
      decimals="2"
      id="Fact_86fd68a5d1e4445fa6307c0775a44b21"
      unitRef="U003">-0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20241001to20241231"
      decimals="2"
      id="Fact_7665fca8130e46c4a4da5c1f41ec3cd4"
      unitRef="U003">-0.79</us-gaap:EarningsPerShareDiluted>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_59d20f9fe1334db1999f604da64bb15e"
      unitRef="U001">22270000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230401to20230630"
      decimals="-3"
      id="Fact_c218e2da27744e99a9443a4156df1d31"
      unitRef="U001">19906000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230701to20230930"
      decimals="-3"
      id="Fact_59e5ea5d0a314fb0ba0f283f5bca7ca1"
      unitRef="U001">17190000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20231001to20231231"
      decimals="-3"
      id="Fact_9fdc23747cf54336bddd9e6091af6762"
      unitRef="U001">13265000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:GrossProfit
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_65a2e1905c6f41b59b9ba4a636fb8804"
      unitRef="U001">12255000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20230401to20230630"
      decimals="-3"
      id="Fact_4b30f08dc8ca4e9ea11a035447c12869"
      unitRef="U001">10858000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20230701to20230930"
      decimals="-3"
      id="Fact_2ce7f2b0b7874b0d86ab8d0840927e90"
      unitRef="U001">8916000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20231001to20231231"
      decimals="-3"
      id="Fact_b66dead2adf0425e8a50aa0233fa190c"
      unitRef="U001">6371000</us-gaap:GrossProfit>
    <us-gaap:NetIncomeLoss
      contextRef="c20230101to20230331"
      decimals="-3"
      id="Fact_6e2b36a5813541608e3aa355b73b7c34"
      unitRef="U001">3139000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230401to20230630"
      decimals="-3"
      id="Fact_0cc86c78b5954e1db5f0a5d43858c2a5"
      unitRef="U001">765000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20230701to20230930"
      decimals="-3"
      id="Fact_271ef5bea72e44fcb59dda7934c56abc"
      unitRef="U001">906000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20231001to20231231"
      decimals="-3"
      id="Fact_19900348a5f248e5874cdd387a48cbeb"
      unitRef="U001">-62000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20230101to20230331"
      decimals="2"
      id="Fact_6129ffcdc3704ef58a45cdc1754ac3ff"
      unitRef="U003">0.32</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20230401to20230630"
      decimals="2"
      id="Fact_3b959407ce9c4c2fa0a022195bc94319"
      unitRef="U003">0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20230701to20230930"
      decimals="2"
      id="Fact_dfafc55a34fd40469fac78c5bad2e454"
      unitRef="U003">0.09</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20231001to20231231"
      decimals="2"
      id="Fact_d560631f968e47a2ba9d3daaa2f14d32"
      unitRef="U003">-0.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20230101to20230331"
      decimals="2"
      id="Fact_52062d278e0e4bce85837d834bafa46b"
      unitRef="U003">0.31</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20230401to20230630"
      decimals="2"
      id="Fact_8dbdd87935b44eeeb7317f32e4705972"
      unitRef="U003">0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20230701to20230930"
      decimals="2"
      id="Fact_e45c69bb7f7a441b96a24aa80b799c62"
      unitRef="U003">0.09</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20231001to20231231"
      decimals="2"
      id="Fact_36e2b01c93564480a4cff81563423338"
      unitRef="U003">-0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:RelatedPartyTransactionsDisclosureTextBlock
      contextRef="c20240101to20241231"
      id="Text_122bd8032f414168a8461c75a6f4dea2">
&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify; font-weight: bold;"&gt;17. Related party transactions&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial;"&gt;&lt;br/&gt;
      &lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-indent: 0px; text-transform: none; word-spacing: 0px; white-space: normal; text-decoration-style: initial; text-decoration-color: initial; text-align: justify;"&gt;One of the Company&#x2019;s directors serves as President and Chief Executive Officer of The One Group Hospitality, Inc.&#160; The
        Company sold various food service technology products to The One Group Hospitality, Inc. on an arms&#x2019; length basis totaling $117 thousand
        and $246 thousand in 2024 and 2023, respectively.&#160; The Company&#x2019;s accounts receivable from The One Group Hospitality, Inc. amounted to $5 thousand and $34 thousand at December
        31, 2024 and 2023, respectively.&lt;/div&gt;
</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20240101to20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember"
      decimals="-3"
      id="Fact_eeb29bfc06f341878c668d3bf27c891f"
      unitRef="U001">117000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20230101to20231231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember"
      decimals="-3"
      id="Fact_818a760ab6f3455c9625e4da9e9bf91d"
      unitRef="U001">246000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20241231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember"
      decimals="-3"
      id="Fact_401fe8bc49984694ac05f2ece93189d7"
      unitRef="U001">5000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20231231_CounterpartyNameAxis_TheOneGroupHospitalityIncMember_RelatedPartyTransactionsByRelatedPartyAxis_RelatedPartyMember"
      decimals="-3"
      id="Fact_e15be5745dfa43d389ef31b300b7d43f"
      unitRef="U001">34000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="c20240101to20241231"
      id="Text_7a0238212f9f45698df40ad2fc23f0c5">
&lt;div style="text-align: justify; color: #000000; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold;"&gt;18. Subsequent events&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;br/&gt;
    &lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman'; font-size: 10pt;"&gt;The Company has evaluated all events or transactions that occurred up to the date the consolidated financial statements were available to issue.&#160; Based upon this review,
      the Company did not identify any subsequent events that would have required adjustment or disclosure in the consolidated financial statements.&lt;/div&gt;
</us-gaap:SubsequentEventsTextBlock>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#Fact_11c1cde366ba4c0f934c1b4137718d0b"
          xlink:label="Fact_11c1cde366ba4c0f934c1b4137718d0b"
          xlink:type="locator"/>
        <link:footnote id="Foot_42b55853fb414ccdba8ab0b20970caa0" xlink:label="Foot_42b55853fb414ccdba8ab0b20970caa0" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">weighted average grant stock price per share</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_11c1cde366ba4c0f934c1b4137718d0b"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_581017b20eb1438cb1a6673b1a2cad30"
          xlink:label="Fact_581017b20eb1438cb1a6673b1a2cad30"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_581017b20eb1438cb1a6673b1a2cad30"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_8c509495d7b0448eb8d857ea64ac5982"
          xlink:label="Fact_8c509495d7b0448eb8d857ea64ac5982"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_8c509495d7b0448eb8d857ea64ac5982"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_1a350868eedf479e825e885b866ad436"
          xlink:label="Fact_1a350868eedf479e825e885b866ad436"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_1a350868eedf479e825e885b866ad436"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_e08d5b677b7041a983641c8cba1f54b8"
          xlink:label="Fact_e08d5b677b7041a983641c8cba1f54b8"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_e08d5b677b7041a983641c8cba1f54b8"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_8d70da87f96f48cca2f3009259a3fbf3"
          xlink:label="Fact_8d70da87f96f48cca2f3009259a3fbf3"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_8d70da87f96f48cca2f3009259a3fbf3"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_b3db755b52a54323b23037bcd2bd07f2"
          xlink:label="Fact_b3db755b52a54323b23037bcd2bd07f2"
          xlink:type="locator"/>
        <link:footnote id="Foot_02c9893d755d46e09c2c806bd0739d14" xlink:label="Foot_02c9893d755d46e09c2c806bd0739d14" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">weighted average exercise price per share</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_b3db755b52a54323b23037bcd2bd07f2"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_1928e9b6c64a42fba5f539b786fd81d0"
          xlink:label="Fact_1928e9b6c64a42fba5f539b786fd81d0"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_1928e9b6c64a42fba5f539b786fd81d0"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_7d0fbb8fba164e83b0ba0879dc808e46"
          xlink:label="Fact_7d0fbb8fba164e83b0ba0879dc808e46"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_7d0fbb8fba164e83b0ba0879dc808e46"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_7c5b53a1c8534156a0305a063082151f"
          xlink:label="Fact_7c5b53a1c8534156a0305a063082151f"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_7c5b53a1c8534156a0305a063082151f"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_1d2c57d04e57448380172b161b182ba6"
          xlink:label="Fact_1d2c57d04e57448380172b161b182ba6"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_1d2c57d04e57448380172b161b182ba6"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_37f9e617256946a08e5fb8778c091f57"
          xlink:label="Fact_37f9e617256946a08e5fb8778c091f57"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_37f9e617256946a08e5fb8778c091f57"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_b348fca154ba44d4b941466d559c1e04"
          xlink:label="Fact_b348fca154ba44d4b941466d559c1e04"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_b348fca154ba44d4b941466d559c1e04"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_64011356dfb94e76a412184b86da6b6d"
          xlink:label="Fact_64011356dfb94e76a412184b86da6b6d"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_64011356dfb94e76a412184b86da6b6d"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_3fb53e09c1724244888528d1d0ec8b77"
          xlink:label="Fact_3fb53e09c1724244888528d1d0ec8b77"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_3fb53e09c1724244888528d1d0ec8b77"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_8d32d3a74ea340de87f2908c5ec778b2"
          xlink:label="Fact_8d32d3a74ea340de87f2908c5ec778b2"
          xlink:type="locator"/>
        <link:footnote id="Foot_ed18f58ee254452faf20859044f9d9f9" xlink:label="Foot_ed18f58ee254452faf20859044f9d9f9" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">weighted-average contractual remaining term in
              years</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_8d32d3a74ea340de87f2908c5ec778b2"
          xlink:to="Foot_ed18f58ee254452faf20859044f9d9f9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_5b50415d1fad4424be3cfa35ffa9f759"
          xlink:label="Fact_5b50415d1fad4424be3cfa35ffa9f759"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_5b50415d1fad4424be3cfa35ffa9f759"
          xlink:to="Foot_ed18f58ee254452faf20859044f9d9f9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_405c8e86ab1b4e299f867ea0322c0700"
          xlink:label="Fact_405c8e86ab1b4e299f867ea0322c0700"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_405c8e86ab1b4e299f867ea0322c0700"
          xlink:to="Foot_ed18f58ee254452faf20859044f9d9f9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_0461940fd93f4a23acf26fcf7baf9ef1"
          xlink:label="Fact_0461940fd93f4a23acf26fcf7baf9ef1"
          xlink:type="locator"/>
        <link:footnote id="Foot_b9e98cfa484b4af5927ff1faa04bae67" xlink:label="Foot_b9e98cfa484b4af5927ff1faa04bae67" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="font-family: 'Times New Roman'; font-size: 10pt;">Adjusted EBITDA in 2023 includes a $1.5 million severance charge related to the
                      resignation of the Company&#x2019;s former Chief Executive Officer.</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_0461940fd93f4a23acf26fcf7baf9ef1"
          xlink:to="Foot_b9e98cfa484b4af5927ff1faa04bae67"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
